freightrain 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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