wxruby 1.9.3-i386-mswin32 → 1.9.4-i386-mswin32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. data/LICENSE +53 -53
  2. data/README +299 -299
  3. data/lib/wx/classes/evthandler.rb +9 -0
  4. data/lib/wx/classes/timer.rb +25 -0
  5. data/lib/wx/version.rb +1 -1
  6. data/lib/wx.rb +42 -42
  7. data/lib/wxruby2.exp +0 -0
  8. data/lib/wxruby2.lib +0 -0
  9. data/lib/wxruby2.so +0 -0
  10. data/samples/SAMPLES-LICENSE.TXT +17 -17
  11. data/samples/bigdemo/About.rbw +39 -39
  12. data/samples/bigdemo/ColorPanel.rbw +25 -25
  13. data/samples/bigdemo/GridSimple.rbw +80 -80
  14. data/samples/bigdemo/MDIDemo.rbw +59 -59
  15. data/samples/bigdemo/PopupMenu.rbw +151 -151
  16. data/samples/bigdemo/Sizers.rbw +545 -545
  17. data/samples/bigdemo/bigdemo.rb +826 -826
  18. data/samples/bigdemo/demoTemplate.rbw +37 -37
  19. data/samples/bigdemo/icons/choice.xpm +27 -27
  20. data/samples/bigdemo/icons/combo.xpm +27 -27
  21. data/samples/bigdemo/icons/copy.xpm +25 -25
  22. data/samples/bigdemo/icons/cut.xpm +24 -24
  23. data/samples/bigdemo/icons/gauge.xpm +27 -27
  24. data/samples/bigdemo/icons/help.xpm +25 -25
  25. data/samples/bigdemo/icons/list.xpm +27 -27
  26. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  27. data/samples/bigdemo/icons/new.xpm +24 -24
  28. data/samples/bigdemo/icons/ogl.ico +0 -0
  29. data/samples/bigdemo/icons/ogl.xpm +45 -45
  30. data/samples/bigdemo/icons/open.xpm +26 -26
  31. data/samples/bigdemo/icons/paste.xpm +38 -38
  32. data/samples/bigdemo/icons/preview.xpm +26 -26
  33. data/samples/bigdemo/icons/print.xpm +26 -26
  34. data/samples/bigdemo/icons/radio.xpm +27 -27
  35. data/samples/bigdemo/icons/robert.xpm +415 -415
  36. data/samples/bigdemo/icons/save.xpm +25 -25
  37. data/samples/bigdemo/icons/smiles.xpm +39 -39
  38. data/samples/bigdemo/icons/smiley.xpm +42 -42
  39. data/samples/bigdemo/icons/stattext.xpm +24 -24
  40. data/samples/bigdemo/icons/test2.bmp +0 -0
  41. data/samples/bigdemo/icons/test2.xpm +79 -79
  42. data/samples/bigdemo/icons/text.xpm +27 -27
  43. data/samples/bigdemo/icons/tog1.xpm +38 -38
  44. data/samples/bigdemo/icons/tog2.xpm +38 -38
  45. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  46. data/samples/bigdemo/tips.txt +7 -7
  47. data/samples/bigdemo/utils.rb +11 -11
  48. data/samples/bigdemo/wxButton.rbw +66 -66
  49. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  50. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  51. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  52. data/samples/bigdemo/wxChoice.rbw +49 -49
  53. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  54. data/samples/bigdemo/wxComboBox.rbw +79 -79
  55. data/samples/bigdemo/wxDialog.rbw +92 -92
  56. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  57. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  58. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  59. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  60. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  61. data/samples/bigdemo/wxFrame.rbw +55 -55
  62. data/samples/bigdemo/wxGauge.rbw +73 -73
  63. data/samples/bigdemo/wxGrid.rbw +68 -68
  64. data/samples/bigdemo/wxListBox.rbw +142 -142
  65. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  66. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  67. data/samples/bigdemo/wxMenu.rbw +238 -238
  68. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  69. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  70. data/samples/bigdemo/wxNotebook.rbw +138 -138
  71. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  72. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  73. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  74. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  75. data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
  76. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  77. data/samples/bigdemo/wxSlider.rbw +44 -44
  78. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  79. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  80. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  81. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  82. data/samples/bigdemo/wxStaticText.rbw +57 -57
  83. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  84. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  85. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  86. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  87. data/samples/bigdemo/wxToolBar.rbw +133 -133
  88. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  89. data/samples/calendar/calendar.rb +275 -275
  90. data/samples/caret/caret.rb +286 -286
  91. data/samples/caret/mondrian.xpm +44 -44
  92. data/samples/controls/controls.rb +1140 -1140
  93. data/samples/controls/get_item_sample.rb +87 -87
  94. data/samples/controls/icons/choice.xpm +27 -27
  95. data/samples/controls/icons/combo.xpm +27 -27
  96. data/samples/controls/icons/gauge.xpm +27 -27
  97. data/samples/controls/icons/list.xpm +27 -27
  98. data/samples/controls/icons/radio.xpm +27 -27
  99. data/samples/controls/icons/stattext.xpm +24 -24
  100. data/samples/controls/icons/text.xpm +27 -27
  101. data/samples/controls/mondrian.xpm +44 -44
  102. data/samples/dialogs/dialogs.rb +724 -724
  103. data/samples/dialogs/tips.txt +18 -18
  104. data/samples/drawing/graphics_drawing.rb +22 -18
  105. data/samples/drawing/images.rb +48 -48
  106. data/samples/etc/activation.rb +108 -108
  107. data/samples/etc/choice.rb +72 -72
  108. data/samples/etc/miniframe.rb +84 -84
  109. data/samples/etc/sash.rb +135 -135
  110. data/samples/etc/scrollwin.rb +116 -116
  111. data/samples/etc/system_settings.rb +258 -258
  112. data/samples/etc/threaded.rb +5 -8
  113. data/samples/etc/wizard.rb +79 -79
  114. data/samples/html/html.rb +14 -10
  115. data/samples/listbook/listbook.rb +181 -181
  116. data/samples/listbook/listbook.xrc +370 -370
  117. data/samples/mdi/mdi.rb +87 -87
  118. data/samples/minimal/minimal.rb +85 -85
  119. data/samples/minimal/nothing.rb +21 -21
  120. data/samples/text/textctrl.rb +124 -124
  121. data/samples/text/unicode.rb +238 -238
  122. data/samples/text/utf8.txt +14 -14
  123. data/samples/treectrl/treectrl.rb +1180 -1180
  124. data/samples/xrc/samples.xrc +46 -46
  125. data/samples/xrc/xrc_sample.rb +107 -107
  126. metadata +3 -3
@@ -1,18 +1,18 @@
1
- Startup tips are documented in the "Startup tips overview" section of wxWindows documentation.
2
- These tips are being read from the tips.txt text file in this directory. Each line of the file contains a single tip.
3
- If you close and open this tips dialog, you will notice that the tip numbers start at the point you were at when you closed the dialog last time. This allows easy cycling through the entire list of tips, instead of always showing the initial tips over and over.
4
- Often you will want to save to the application's wxConfig, the last tip that the user saw, as well as whether they want to see tips on startup.
5
- Comments in the tips file have a # as the first character. Comments are automatically skipped over. See the tips.txt file in this directory for the example.
6
- # This line is a comment since it started with a #, and is skipped.
7
- Blank lines in the tip file are also automatically skipped over. Lines with only spaces are also considered empty.
8
- The next line in this tip file is empty, so it will be automatically skipped.
9
-
10
- The next line in this tip file is just empty spaces, so it is considered empty too, and is also automatically skipped.
11
-
12
- You can easily add translations to your startup tips via the usual gettext methods by wrapping a string in a gettext macro, which is _(""). See next tip for example.
13
- _("This tip is marked as a translatable string by wrapping it inside the usual gettext macro, so it can be collected by gettext and added to a translation catalog. Your application can then use this catalog and serve out a translated version of the tip.")
14
- Translatable strings must strictly begin with _(", not _( " or wxGetTranslation(" or something else.
15
- If you are using gettext translatable strings, don't forget to escape to replace any " characters within the tip with a \" instead
16
- _("This is a translatable tip with the quoted words \"Escape me\" properly escaped.")
17
- If you have very specialized needs, you can derive your own wxTipProvider and use that instead.
18
- If you want to modify the tip content at runtime for purposes other than translation (for example, variable expansion), one easy option is to use a custom tip provider derived from wxFileTipProvider. Your custom tip provider would contain a single virtual function to override: PreprocessTip().
1
+ Startup tips are documented in the "Startup tips overview" section of wxWindows documentation.
2
+ These tips are being read from the tips.txt text file in this directory. Each line of the file contains a single tip.
3
+ If you close and open this tips dialog, you will notice that the tip numbers start at the point you were at when you closed the dialog last time. This allows easy cycling through the entire list of tips, instead of always showing the initial tips over and over.
4
+ Often you will want to save to the application's wxConfig, the last tip that the user saw, as well as whether they want to see tips on startup.
5
+ Comments in the tips file have a # as the first character. Comments are automatically skipped over. See the tips.txt file in this directory for the example.
6
+ # This line is a comment since it started with a #, and is skipped.
7
+ Blank lines in the tip file are also automatically skipped over. Lines with only spaces are also considered empty.
8
+ The next line in this tip file is empty, so it will be automatically skipped.
9
+
10
+ The next line in this tip file is just empty spaces, so it is considered empty too, and is also automatically skipped.
11
+
12
+ You can easily add translations to your startup tips via the usual gettext methods by wrapping a string in a gettext macro, which is _(""). See next tip for example.
13
+ _("This tip is marked as a translatable string by wrapping it inside the usual gettext macro, so it can be collected by gettext and added to a translation catalog. Your application can then use this catalog and serve out a translated version of the tip.")
14
+ Translatable strings must strictly begin with _(", not _( " or wxGetTranslation(" or something else.
15
+ If you are using gettext translatable strings, don't forget to escape to replace any " characters within the tip with a \" instead
16
+ _("This is a translatable tip with the quoted words \"Escape me\" properly escaped.")
17
+ If you have very specialized needs, you can derive your own wxTipProvider and use that instead.
18
+ If you want to modify the tip content at runtime for purposes other than translation (for example, variable expansion), one easy option is to use a custom tip provider derived from wxFileTipProvider. Your custom tip provider would contain a single virtual function to override: PreprocessTip().
@@ -198,27 +198,31 @@ end
198
198
  class GraphicsFrame < Wx::Frame
199
199
  def initialize()
200
200
  super(nil,:title=>"Graphics Context example",:size=>[500,400])
201
- hbox = Wx::BoxSizer.new(Wx::VERTICAL)
202
201
  @win = GraphicsWindow.new(self)
203
- hbox.add(@win,1,Wx::EXPAND|Wx::ALL)
204
- grid = Wx::GridSizer.new(2,2)
205
- cb_rect = Wx::CheckBox.new(self,:label=>"Draw Rectangles")
206
- cb_corner = Wx::CheckBox.new(self,:label=>"Draw Corners")
207
- create_status_bar()
208
- get_status_bar.set_status_text("FPS: 0")
209
- grid.add(cb_rect)
210
- grid.add(cb_corner)
211
- @win.rect = cb_rect
212
- @win.corner = cb_corner
213
- hbox.add(grid)
214
- set_sizer(hbox)
215
- @timer = Wx::Timer.new(self,2000)
216
- evt_timer(2000, :fps_display)
217
- @timer.start(1000)
202
+
203
+ create_status_bar(3)
204
+ status_bar.set_status_text("Frames per sec: 0", 0)
205
+ @win.rect = Wx::CheckBox.new(status_bar,:label=>"Draw Rectangles")
206
+ @win.corner = Wx::CheckBox.new(status_bar,:label=>"Draw Corners")
207
+
208
+ Wx::Timer.every(1000) { fps_display }
209
+ evt_size :on_size
218
210
  end
219
-
211
+
212
+
213
+ # Place the two control checkboxes within the StatusBar
214
+ def on_size
215
+ rect = status_bar.field_rect(1)
216
+ @win.rect.move [ rect.x + 2, rect.y + 2]
217
+ @win.rect.size = [ rect.width - 4, rect.height - 4 ]
218
+
219
+ rect = status_bar.field_rect(2)
220
+ @win.corner.move [ rect.x + 2, rect.y + 2]
221
+ @win.corner.size = [ rect.width - 4, rect.height - 4 ]
222
+ end
223
+
220
224
  def fps_display()
221
- get_status_bar.set_status_text("FPS: #{@win.fps}")
225
+ get_status_bar.set_status_text("Frames per sec: #{@win.fps}", 0)
222
226
  @win.fps = 0
223
227
  end
224
228
  end
@@ -1,48 +1,48 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
14
- end
15
-
16
- # This sample demonstrates how to draw an image from a file onto a
17
- # window. This one uses a small PNG file, but other formats such as JPEG
18
- # are supported - see documentation for more details.
19
-
20
- class MyFrame < Wx::Frame
21
- def initialize(title)
22
- super(nil, -1, title)
23
- evt_paint { on_paint }
24
-
25
- img_file = File.join( File.dirname(__FILE__), 'paperclip.png')
26
- # first load the image into an Image object
27
- image = Wx::Image.new(img_file)
28
- # then create a Bitmap suitable for drawing
29
- @bitmap = Wx::Bitmap.new(image)
30
- end
31
-
32
- def on_paint
33
- paint do | dc |
34
- dc.clear
35
- dc.draw_bitmap(@bitmap, 0, 0, false)
36
- end
37
- end
38
- end
39
-
40
- class ImagesApp < Wx::App
41
- def on_init
42
- frame = MyFrame.new("Simple Image Demo")
43
- frame.show
44
- end
45
- end
46
-
47
- a = ImagesApp.new
48
- a.main_loop()
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ require 'wx'
11
+ rescue LoadError
12
+ raise no_wx_err
13
+ end
14
+ end
15
+
16
+ # This sample demonstrates how to draw an image from a file onto a
17
+ # window. This one uses a small PNG file, but other formats such as JPEG
18
+ # are supported - see documentation for more details.
19
+
20
+ class MyFrame < Wx::Frame
21
+ def initialize(title)
22
+ super(nil, -1, title)
23
+ evt_paint { on_paint }
24
+
25
+ img_file = File.join( File.dirname(__FILE__), 'paperclip.png')
26
+ # first load the image into an Image object
27
+ image = Wx::Image.new(img_file)
28
+ # then create a Bitmap suitable for drawing
29
+ @bitmap = Wx::Bitmap.new(image)
30
+ end
31
+
32
+ def on_paint
33
+ paint do | dc |
34
+ dc.clear
35
+ dc.draw_bitmap(@bitmap, 0, 0, false)
36
+ end
37
+ end
38
+ end
39
+
40
+ class ImagesApp < Wx::App
41
+ def on_init
42
+ frame = MyFrame.new("Simple Image Demo")
43
+ frame.show
44
+ end
45
+ end
46
+
47
+ a = ImagesApp.new
48
+ a.main_loop()
@@ -1,108 +1,108 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
14
- end
15
-
16
- # This sample demonstrates the use of Activate Events. These are
17
- # generated when a frame becomes active or inactive. This is typically
18
- # indicated by a frame's titlebar changing colour, and a widget within
19
- # the frame gainin focus. An event is also generated when a whole wxRuby
20
- # app starts or stops being the current focussed desktop application.
21
-
22
- class MinimalFrame < Wx::Frame
23
- def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
24
- super(nil, -1, title, pos, size, style)
25
-
26
-
27
- menuFile = Wx::Menu.new()
28
- helpMenu = Wx::Menu.new()
29
- helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
30
- menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
31
- menuBar = Wx::MenuBar.new()
32
- menuBar.append(menuFile, "&File")
33
- menuBar.append(helpMenu, "&Help")
34
- set_menu_bar(menuBar)
35
-
36
- create_status_bar(2)
37
- set_status_text("Welcome to wxRuby!")
38
-
39
- evt_menu(Wx::ID_EXIT) { on_quit }
40
- evt_menu(Wx::ID_ABOUT) { on_about }
41
-
42
- evt_activate { | e | on_activate(e) }
43
- evt_iconize { | e | on_iconize(e) }
44
- end
45
-
46
-
47
- def on_iconize(event)
48
- if event.iconized
49
- puts "Frame '#{get_title}' was iconized"
50
- else
51
- puts "Frame '#{get_title}' was restored"
52
- end
53
- end
54
-
55
- def on_activate(event)
56
- if event.get_active
57
- puts "Frame '#{get_title}' became activated"
58
- set_status_text 'Active'
59
- else
60
- puts "Frame '#{get_title}' became deactivated"
61
- set_status_text 'Inactive'
62
- end
63
- event.skip # important
64
- end
65
-
66
- def on_quit
67
- Wx::get_app.close_all
68
- end
69
-
70
- def on_about
71
- msg = sprintf("This is the About dialog of the activate sample.\n" \
72
- "Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
73
- Wx::message_box(msg, "About Activate", Wx::OK|Wx::ICON_INFORMATION, self)
74
- end
75
- end
76
-
77
- class RbApp < Wx::App
78
- def on_init
79
- @frame_1 = MinimalFrame.new("Tall window",
80
- Wx::Point.new(50, 50),
81
- Wx::Size.new(150, 240))
82
- @frame_2 = MinimalFrame.new("Wide window",
83
- Wx::Point.new(100, 100),
84
- Wx::Size.new(300, 180))
85
- evt_activate_app { | e | on_activate_app(e) }
86
- @frame_1.show()
87
- @frame_2.show()
88
-
89
- end
90
-
91
- def on_activate_app(event)
92
- if event.get_active
93
- puts "The app became active"
94
- else
95
- puts "The app became inactive"
96
- end
97
- event.skip # important
98
- end
99
-
100
- def close_all
101
- @frame_1.close(true)
102
- @frame_2.close(true)
103
- end
104
- end
105
-
106
- app = RbApp.new
107
- app.main_loop()
108
-
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ require 'wx'
11
+ rescue LoadError
12
+ raise no_wx_err
13
+ end
14
+ end
15
+
16
+ # This sample demonstrates the use of Activate Events. These are
17
+ # generated when a frame becomes active or inactive. This is typically
18
+ # indicated by a frame's titlebar changing colour, and a widget within
19
+ # the frame gainin focus. An event is also generated when a whole wxRuby
20
+ # app starts or stops being the current focussed desktop application.
21
+
22
+ class MinimalFrame < Wx::Frame
23
+ def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
24
+ super(nil, -1, title, pos, size, style)
25
+
26
+
27
+ menuFile = Wx::Menu.new()
28
+ helpMenu = Wx::Menu.new()
29
+ helpMenu.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
30
+ menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
31
+ menuBar = Wx::MenuBar.new()
32
+ menuBar.append(menuFile, "&File")
33
+ menuBar.append(helpMenu, "&Help")
34
+ set_menu_bar(menuBar)
35
+
36
+ create_status_bar(2)
37
+ set_status_text("Welcome to wxRuby!")
38
+
39
+ evt_menu(Wx::ID_EXIT) { on_quit }
40
+ evt_menu(Wx::ID_ABOUT) { on_about }
41
+
42
+ evt_activate { | e | on_activate(e) }
43
+ evt_iconize { | e | on_iconize(e) }
44
+ end
45
+
46
+
47
+ def on_iconize(event)
48
+ if event.iconized
49
+ puts "Frame '#{get_title}' was iconized"
50
+ else
51
+ puts "Frame '#{get_title}' was restored"
52
+ end
53
+ end
54
+
55
+ def on_activate(event)
56
+ if event.get_active
57
+ puts "Frame '#{get_title}' became activated"
58
+ set_status_text 'Active'
59
+ else
60
+ puts "Frame '#{get_title}' became deactivated"
61
+ set_status_text 'Inactive'
62
+ end
63
+ event.skip # important
64
+ end
65
+
66
+ def on_quit
67
+ Wx::get_app.close_all
68
+ end
69
+
70
+ def on_about
71
+ msg = sprintf("This is the About dialog of the activate sample.\n" \
72
+ "Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
73
+ Wx::message_box(msg, "About Activate", Wx::OK|Wx::ICON_INFORMATION, self)
74
+ end
75
+ end
76
+
77
+ class RbApp < Wx::App
78
+ def on_init
79
+ @frame_1 = MinimalFrame.new("Tall window",
80
+ Wx::Point.new(50, 50),
81
+ Wx::Size.new(150, 240))
82
+ @frame_2 = MinimalFrame.new("Wide window",
83
+ Wx::Point.new(100, 100),
84
+ Wx::Size.new(300, 180))
85
+ evt_activate_app { | e | on_activate_app(e) }
86
+ @frame_1.show()
87
+ @frame_2.show()
88
+
89
+ end
90
+
91
+ def on_activate_app(event)
92
+ if event.get_active
93
+ puts "The app became active"
94
+ else
95
+ puts "The app became inactive"
96
+ end
97
+ event.skip # important
98
+ end
99
+
100
+ def close_all
101
+ @frame_1.close(true)
102
+ @frame_2.close(true)
103
+ end
104
+ end
105
+
106
+ app = RbApp.new
107
+ app.main_loop()
108
+
@@ -1,72 +1,72 @@
1
- #!/usr/bin/env ruby
2
- # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
- # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
-
5
- begin
6
- require 'wx'
7
- rescue LoadError => no_wx_err
8
- begin
9
- require 'rubygems'
10
- require 'wx'
11
- rescue LoadError
12
- raise no_wx_err
13
- end
14
- end
15
- include Wx
16
-
17
- ID_CHOICE = 1000
18
-
19
- class ChoiceDlg < Dialog
20
- def initialize
21
- super(nil, -1, "ChoiceDialog", DEFAULT_POSITION, Size.new(185, 185))
22
-
23
- list = [ "ABS", "Airbag", "Air conditioning" ]
24
-
25
- @m_pChoice = Choice.new(self, ID_CHOICE, DEFAULT_POSITION, DEFAULT_SIZE, list)
26
- @m_pChoice.append("Automatic gear", 100)
27
-
28
- @m_pLabel = StaticText.new(self, -1, "default")
29
- dlgSizer = BoxSizer.new(HORIZONTAL)
30
- choiceSizer = BoxSizer.new(VERTICAL)
31
- choiceSizer.add(@m_pChoice, 1, GROW)
32
- choiceSizer.add(@m_pLabel)
33
- dlgSizer.add(choiceSizer, 1, GROW)
34
- set_sizer(dlgSizer)
35
- set_auto_layout(TRUE)
36
- layout()
37
-
38
- evt_choice(ID_CHOICE) {|event| onChoice(event) }
39
- evt_close {onClose}
40
- end
41
-
42
- def onChoice(event)
43
- chose = event.get_selection
44
- data = event.get_client_data
45
- # NOTE: uninitialized client data will be false, not nil
46
- if(!data)
47
- data = 0
48
- end
49
- data += 1
50
- @m_pLabel.set_label(data.to_s)
51
-
52
- @m_pChoice.set_selection(chose)
53
- @m_pChoice.set_client_data(chose, data)
54
- end
55
-
56
- def onClose
57
- destroy()
58
- end
59
- end
60
-
61
-
62
- class RbApp < App
63
- def on_init
64
- dlg = ChoiceDlg.new
65
- set_top_window(dlg)
66
- dlg.show(TRUE)
67
- end
68
-
69
- end
70
-
71
- a = RbApp.new
72
- a.main_loop()
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ require 'wx'
11
+ rescue LoadError
12
+ raise no_wx_err
13
+ end
14
+ end
15
+ include Wx
16
+
17
+ ID_CHOICE = 1000
18
+
19
+ class ChoiceDlg < Dialog
20
+ def initialize
21
+ super(nil, -1, "ChoiceDialog", DEFAULT_POSITION, Size.new(185, 185))
22
+
23
+ list = [ "ABS", "Airbag", "Air conditioning" ]
24
+
25
+ @m_pChoice = Choice.new(self, ID_CHOICE, DEFAULT_POSITION, DEFAULT_SIZE, list)
26
+ @m_pChoice.append("Automatic gear", 100)
27
+
28
+ @m_pLabel = StaticText.new(self, -1, "default")
29
+ dlgSizer = BoxSizer.new(HORIZONTAL)
30
+ choiceSizer = BoxSizer.new(VERTICAL)
31
+ choiceSizer.add(@m_pChoice, 1, GROW)
32
+ choiceSizer.add(@m_pLabel)
33
+ dlgSizer.add(choiceSizer, 1, GROW)
34
+ set_sizer(dlgSizer)
35
+ set_auto_layout(TRUE)
36
+ layout()
37
+
38
+ evt_choice(ID_CHOICE) {|event| onChoice(event) }
39
+ evt_close {onClose}
40
+ end
41
+
42
+ def onChoice(event)
43
+ chose = event.get_selection
44
+ data = event.get_client_data
45
+ # NOTE: uninitialized client data will be false, not nil
46
+ if(!data)
47
+ data = 0
48
+ end
49
+ data += 1
50
+ @m_pLabel.set_label(data.to_s)
51
+
52
+ @m_pChoice.set_selection(chose)
53
+ @m_pChoice.set_client_data(chose, data)
54
+ end
55
+
56
+ def onClose
57
+ destroy()
58
+ end
59
+ end
60
+
61
+
62
+ class RbApp < App
63
+ def on_init
64
+ dlg = ChoiceDlg.new
65
+ set_top_window(dlg)
66
+ dlg.show(TRUE)
67
+ end
68
+
69
+ end
70
+
71
+ a = RbApp.new
72
+ a.main_loop()