freightrain 0.6.6 → 0.6.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -15,7 +15,7 @@ Long story short: you should get the latest version from the ruby/gnome2 svn. At
15
15
  == HOW DO I USE IT?
16
16
  For now, you should take a look at http://github.com/bolthar/rubydraulica
17
17
  (broken - callback handling doesn't work like that anymore. doc coming really really soon)
18
-
18
+ An up to date example : http://github.com/bolthar/intersect
19
19
  Note that the project is currently in ALPHA state. Use it in production at your own risk :-)
20
20
 
21
21
  To get a working stub, install the gem and then:
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ require 'rake/testtask'
9
9
 
10
10
  spec = Gem::Specification.new do |s|
11
11
  s.name = 'freightrain'
12
- s.version = '0.6.6'
12
+ s.version = '0.6.7'
13
13
  s.add_dependency('require_all', '>= 1.1.0')
14
14
  s.add_dependency('needle', '>= 1.3.0')
15
15
  s.has_rdoc = false
@@ -4,6 +4,15 @@ module Gtk
4
4
  class Widget
5
5
  include Freightrain::BindingBase
6
6
 
7
+ #made for easier compatibility (other toolkits use show/hide)
8
+ def show
9
+ self.visible = true
10
+ end
11
+
12
+ def hide
13
+ self.visible = false
14
+ end
15
+
7
16
  def color_from_rgb(rgb_array)
8
17
  red = rgb_array[0] * 255
9
18
  green = rgb_array[1] * 255
@@ -1,3 +1,4 @@
1
+ require 'rexml/document'
1
2
 
2
3
  module Freightrain
3
4
  module Toolkit
@@ -21,22 +22,28 @@ module Freightrain
21
22
  end
22
23
 
23
24
  def create_objects_from_file(file_name)
24
- builder = Wx::XmlResource.new(get_xrc_files(file_name))
25
- toplevel_name = get_toplevel_name(file_name)
25
+ xrc_file = get_xrc_files(file_name)
26
+ builder = Wx::XmlResource.new(xrc_file)
27
+ toplevel_name = get_toplevel_name(xrc_file)
26
28
  @toplevel = builder.load_frame(nil, toplevel_name)
27
29
  return get_all_objects(@toplevel)
28
30
  end
29
31
 
30
32
  def create_object_accessors(widgets, view)
31
33
  widgets.each do |widget|
32
- view.instance_eval "def #{name}; @widgets.select { |w| w.name == '#{widget.name}' }.first ;end;"
34
+ view.instance_eval "def #{widget.name}; @widgets.select { |w| w.name == '#{widget.name}' }.first ;end;"
33
35
  end
34
36
  end
35
37
 
36
38
  def connect_to_callback(widget, event_name, callback)
37
- # widget.connect(SIGNAL(widget.get_event_signature(event_name))) do |*args|
38
- # callback.call(*args)
39
- # end
39
+ connector_method_name = "evt_#{event_name}".to_sym
40
+ if widget.respond_to? connector_method_name
41
+ connector_method = widget.method(connector_method_name)
42
+ args = [widget]
43
+ connector_method.call(*args.take(connector_method.arity.abs - 1)) do |event|
44
+ callback.call(*[event].take(callback.arity))
45
+ end
46
+ end
40
47
  end
41
48
 
42
49
  def control
@@ -53,7 +60,10 @@ module Freightrain
53
60
  end
54
61
 
55
62
  def get_toplevel_name(file_name)
56
- return "my_frame"
63
+ File.open(file_name, "r") do |file|
64
+ doc = REXML::Document.new(file)
65
+ return doc.root.children[1].attributes['name']
66
+ end
57
67
  end
58
68
 
59
69
  end
@@ -0,0 +1,12 @@
1
+
2
+ module Wx
3
+
4
+ class Sizer
5
+
6
+ def plug_in(region_widget)
7
+ self.remove(self.get_children.first) if self.get_children.length != 0
8
+ self.add_child(region_widget)
9
+ end
10
+
11
+ end
12
+ end
@@ -3,6 +3,7 @@ require 'wx'
3
3
 
4
4
  require File.join(File.dirname(__FILE__), "interface_builder.rb")
5
5
  require File.join(File.dirname(__FILE__), "dialog_helper.rb")
6
+ require File.join(File.dirname(__FILE__), "widgets", "wx_sizer.rb")
6
7
 
7
8
  module Freightrain
8
9
 
@@ -16,7 +16,7 @@ module Freightrain
16
16
 
17
17
  def on_show(view)
18
18
  container = view.send(@container)
19
- container.plug_in(@viewmodel.show)
19
+ container.plug_in(@viewmodel.view.control)
20
20
  end
21
21
 
22
22
  def connect_to(host)
@@ -40,16 +40,21 @@ module Freightrain
40
40
  end
41
41
 
42
42
  def show
43
- @view.control.visible = true
43
+ @view.control.show
44
44
  @regions.values.each do |region|
45
45
  region.on_show(@view)
46
+ region.viewmodel.show
46
47
  end
47
48
  return @view.control
48
49
  end
49
50
 
50
51
  def hide
51
- @view.control.visible = false
52
+ @view.control.hide
52
53
  end
53
54
 
55
+ def view
56
+ return @view
57
+ end
58
+
54
59
  end
55
60
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freightrain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 6
8
+ - 7
9
+ version: 0.6.7
5
10
  platform: ruby
6
11
  authors:
7
12
  - Andrea Dallera
@@ -9,29 +14,37 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-05-27 00:00:00 +02:00
17
+ date: 2010-06-01 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: require_all
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 1
30
+ - 0
23
31
  version: 1.1.0
24
- version:
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: needle
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 1
43
+ - 3
44
+ - 0
33
45
  version: 1.3.0
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  description: ruby desktop development made easy
36
49
  email: andrea@andreadallera.com
37
50
  executables:
@@ -44,74 +57,75 @@ files:
44
57
  - README.rdoc
45
58
  - Rakefile
46
59
  - bin/ftrain
47
- - lib/freightrain.rb
60
+ - lib/scaffolding/commands/triad.rb
61
+ - lib/scaffolding/commands/app.rb
48
62
  - lib/scaffolding/scaffolding.rb
49
63
  - lib/scaffolding/generator.rb
64
+ - lib/scaffolding/templates/view_bnd.ftt
50
65
  - lib/scaffolding/templates/view_toplevel.ftt
51
- - lib/scaffolding/templates/view_model.ftt
52
- - lib/scaffolding/templates/viewmodel_toplevel.ftt
53
66
  - lib/scaffolding/templates/view_toplevel_glade.ftt
67
+ - lib/scaffolding/templates/view_model.ftt
54
68
  - lib/scaffolding/templates/view_control_glade.ftt
55
- - lib/scaffolding/templates/application.ftt
56
- - lib/scaffolding/templates/view_bnd.ftt
69
+ - lib/scaffolding/templates/viewmodel_toplevel.ftt
57
70
  - lib/scaffolding/templates/view.ftt
58
- - lib/scaffolding/commands/triad.rb
59
- - lib/scaffolding/commands/app.rb
60
- - lib/extensions/wx/interface_builder.rb
61
- - lib/extensions/wx/wx_bootstrapper.rb
62
- - lib/extensions/wx/dialog_helper.rb
63
- - lib/extensions/gtk/interface_builder.rb
64
- - lib/extensions/gtk/dialog_helper.rb
65
- - lib/extensions/gtk/widgets/gtk_toggle_button.rb
66
- - lib/extensions/gtk/widgets/gtk_toggle_tool_button.rb
67
- - lib/extensions/gtk/widgets/gtk_treeview.rb
68
- - lib/extensions/gtk/widgets/gtk_widget.rb
69
- - lib/extensions/gtk/widgets/gtk_image.rb
70
- - lib/extensions/gtk/widgets/gtk_treeviewcolumn.rb
71
- - lib/extensions/gtk/widgets/gtk_calendar.rb
72
- - lib/extensions/gtk/widgets/gtk_layout.rb
73
- - lib/extensions/gtk/widgets/gtk_combo_box.rb
74
- - lib/extensions/gtk/widgets/gtk_statusicon.rb
75
- - lib/extensions/gtk/gtk_bootstrapper.rb
76
- - lib/extensions/qt/interface_builder.rb
77
- - lib/extensions/qt/dialog_helper.rb
78
- - lib/extensions/qt/widgets/qt_calendar_widget.rb
79
- - lib/extensions/qt/widgets/qt_abstract_button.rb
80
- - lib/extensions/qt/widgets/qt_base.rb
81
- - lib/extensions/qt/widgets/qt_layout.rb
82
- - lib/extensions/qt/widgets/qt_line_edit.rb
83
- - lib/extensions/qt/widgets/qt_label.rb
84
- - lib/extensions/qt/qt_bootstrapper.rb
85
- - lib/freightrain/testhelpers/auto_stubber.rb
86
- - lib/freightrain/viewmodels/dialog_extension.rb
87
- - lib/freightrain/viewmodels/freight_view_model.rb
88
- - lib/freightrain/ioc/container.rb
89
- - lib/freightrain/ioc/container_hookable.rb
90
- - lib/freightrain/testhelpers.rb
91
- - lib/freightrain/string_patch.rb
92
- - lib/freightrain/regions/freight_region.rb
93
- - lib/freightrain/regions/region_host.rb
94
- - lib/freightrain/services/freight_service.rb
95
- - lib/freightrain/services/service_host.rb
96
- - lib/freightrain/binding/converters/float_converter.rb
71
+ - lib/scaffolding/templates/application.ftt
97
72
  - lib/freightrain/binding/converters/boolean_converter.rb
98
- - lib/freightrain/binding/converters/converter_factory.rb
99
- - lib/freightrain/binding/converters/default_converter.rb
73
+ - lib/freightrain/binding/converters/float_converter.rb
100
74
  - lib/freightrain/binding/converters/integer_converter.rb
101
- - lib/freightrain/binding/binding_host.rb
102
- - lib/freightrain/binding/binding_loader.rb
103
- - lib/freightrain/binding/binding_base.rb
75
+ - lib/freightrain/binding/converters/default_converter.rb
76
+ - lib/freightrain/binding/converters/converter_factory.rb
104
77
  - lib/freightrain/binding/freight_binding.rb
78
+ - lib/freightrain/binding/binding_base.rb
79
+ - lib/freightrain/binding/binding_loader.rb
80
+ - lib/freightrain/binding/binding_host.rb
81
+ - lib/freightrain/views/interface_builder.rb
82
+ - lib/freightrain/views/callback_wrapper.rb
83
+ - lib/freightrain/views/freight_view.rb
105
84
  - lib/freightrain/bootstrapper.rb
106
- - lib/freightrain/signals/signal_host.rb
85
+ - lib/freightrain/string_patch.rb
86
+ - lib/freightrain/regions/freight_region.rb
87
+ - lib/freightrain/regions/region_host.rb
107
88
  - lib/freightrain/signals/freight_signal.rb
108
- - lib/freightrain/elements/layout_widget.rb
89
+ - lib/freightrain/signals/signal_host.rb
90
+ - lib/freightrain/viewmodels/freight_view_model.rb
91
+ - lib/freightrain/viewmodels/dialog_extension.rb
92
+ - lib/freightrain/auto_requirer.rb
93
+ - lib/freightrain/testhelpers.rb
94
+ - lib/freightrain/testhelpers/auto_stubber.rb
95
+ - lib/freightrain/ioc/container.rb
96
+ - lib/freightrain/ioc/container_hookable.rb
97
+ - lib/freightrain/services/service_host.rb
98
+ - lib/freightrain/services/freight_service.rb
109
99
  - lib/freightrain/elements/freight_element_view.rb
110
100
  - lib/freightrain/elements/freight_element_view_model.rb
111
- - lib/freightrain/views/freight_view.rb
112
- - lib/freightrain/views/interface_builder.rb
113
- - lib/freightrain/views/callback_wrapper.rb
114
- - lib/freightrain/auto_requirer.rb
101
+ - lib/freightrain/elements/layout_widget.rb
102
+ - lib/extensions/qt/widgets/qt_calendar_widget.rb
103
+ - lib/extensions/qt/widgets/qt_layout.rb
104
+ - lib/extensions/qt/widgets/qt_label.rb
105
+ - lib/extensions/qt/widgets/qt_base.rb
106
+ - lib/extensions/qt/widgets/qt_line_edit.rb
107
+ - lib/extensions/qt/widgets/qt_abstract_button.rb
108
+ - lib/extensions/qt/interface_builder.rb
109
+ - lib/extensions/qt/dialog_helper.rb
110
+ - lib/extensions/qt/qt_bootstrapper.rb
111
+ - lib/extensions/wx/widgets/wx_sizer.rb
112
+ - lib/extensions/wx/interface_builder.rb
113
+ - lib/extensions/wx/dialog_helper.rb
114
+ - lib/extensions/wx/wx_bootstrapper.rb
115
+ - lib/extensions/gtk/gtk_bootstrapper.rb
116
+ - lib/extensions/gtk/widgets/gtk_calendar.rb
117
+ - lib/extensions/gtk/widgets/gtk_toggle_button.rb
118
+ - lib/extensions/gtk/widgets/gtk_treeviewcolumn.rb
119
+ - lib/extensions/gtk/widgets/gtk_layout.rb
120
+ - lib/extensions/gtk/widgets/gtk_statusicon.rb
121
+ - lib/extensions/gtk/widgets/gtk_toggle_tool_button.rb
122
+ - lib/extensions/gtk/widgets/gtk_widget.rb
123
+ - lib/extensions/gtk/widgets/gtk_image.rb
124
+ - lib/extensions/gtk/widgets/gtk_treeview.rb
125
+ - lib/extensions/gtk/widgets/gtk_combo_box.rb
126
+ - lib/extensions/gtk/interface_builder.rb
127
+ - lib/extensions/gtk/dialog_helper.rb
128
+ - lib/freightrain.rb
115
129
  has_rdoc: true
116
130
  homepage: http://github.com/bolthar/freightrain
117
131
  licenses: []
@@ -125,18 +139,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
139
  requirements:
126
140
  - - ">="
127
141
  - !ruby/object:Gem::Version
142
+ segments:
143
+ - 0
128
144
  version: "0"
129
- version:
130
145
  required_rubygems_version: !ruby/object:Gem::Requirement
131
146
  requirements:
132
147
  - - ">="
133
148
  - !ruby/object:Gem::Version
149
+ segments:
150
+ - 0
134
151
  version: "0"
135
- version:
136
152
  requirements: []
137
153
 
138
154
  rubyforge_project:
139
- rubygems_version: 1.3.5
155
+ rubygems_version: 1.3.6
140
156
  signing_key:
141
157
  specification_version: 3
142
158
  summary: ruby desktop development made easy