wxruby 1.9.0-i386-mswin32 → 1.9.1-i386-mswin32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. data/lib/wx.rb +42 -35
  2. data/lib/wx/accessors.rb +52 -0
  3. data/lib/wx/classes/evthandler.rb +36 -32
  4. data/lib/wx/classes/grid.rb +13 -13
  5. data/lib/wx/classes/point.rb +43 -0
  6. data/lib/wx/classes/size.rb +44 -0
  7. data/lib/wx/classes/styledtextctrl.rb +92 -0
  8. data/lib/wx/classes/textctrl.rb +14 -0
  9. data/lib/wx/classes/window.rb +4 -0
  10. data/lib/wx/keyword_ctors.rb +219 -0
  11. data/lib/wx/keyword_defs.rb +455 -0
  12. data/lib/wx/version.rb +1 -1
  13. data/lib/wxruby2.exp +0 -0
  14. data/lib/wxruby2.lib +0 -0
  15. data/lib/wxruby2.so +0 -0
  16. data/samples/SAMPLES-LICENSE.TXT +17 -17
  17. data/samples/aui/aui.rb +6 -5
  18. data/samples/bigdemo/About.rbw +39 -39
  19. data/samples/bigdemo/ColorPanel.rbw +25 -25
  20. data/samples/bigdemo/GridSimple.rbw +80 -80
  21. data/samples/bigdemo/MDIDemo.rbw +59 -59
  22. data/samples/bigdemo/PopupMenu.rbw +151 -151
  23. data/samples/bigdemo/Sizers.rbw +545 -545
  24. data/samples/bigdemo/bigdemo.rb +826 -826
  25. data/samples/bigdemo/demoTemplate.rbw +37 -37
  26. data/samples/bigdemo/icons/choice.xpm +27 -27
  27. data/samples/bigdemo/icons/combo.xpm +27 -27
  28. data/samples/bigdemo/icons/copy.xpm +25 -25
  29. data/samples/bigdemo/icons/cut.xpm +24 -24
  30. data/samples/bigdemo/icons/gauge.xpm +27 -27
  31. data/samples/bigdemo/icons/help.xpm +25 -25
  32. data/samples/bigdemo/icons/list.xpm +27 -27
  33. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  34. data/samples/bigdemo/icons/new.xpm +24 -24
  35. data/samples/bigdemo/icons/ogl.ico +0 -0
  36. data/samples/bigdemo/icons/ogl.xpm +45 -45
  37. data/samples/bigdemo/icons/open.xpm +26 -26
  38. data/samples/bigdemo/icons/paste.xpm +38 -38
  39. data/samples/bigdemo/icons/preview.xpm +26 -26
  40. data/samples/bigdemo/icons/print.xpm +26 -26
  41. data/samples/bigdemo/icons/radio.xpm +27 -27
  42. data/samples/bigdemo/icons/robert.xpm +415 -415
  43. data/samples/bigdemo/icons/save.xpm +25 -25
  44. data/samples/bigdemo/icons/smiles.xpm +39 -39
  45. data/samples/bigdemo/icons/smiley.xpm +42 -42
  46. data/samples/bigdemo/icons/stattext.xpm +24 -24
  47. data/samples/bigdemo/icons/test2.bmp +0 -0
  48. data/samples/bigdemo/icons/test2.xpm +79 -79
  49. data/samples/bigdemo/icons/text.xpm +27 -27
  50. data/samples/bigdemo/icons/tog1.xpm +38 -38
  51. data/samples/bigdemo/icons/tog2.xpm +38 -38
  52. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  53. data/samples/bigdemo/tips.txt +7 -7
  54. data/samples/bigdemo/utils.rb +11 -11
  55. data/samples/bigdemo/wxButton.rbw +66 -66
  56. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  57. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  58. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  59. data/samples/bigdemo/wxChoice.rbw +49 -49
  60. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  61. data/samples/bigdemo/wxComboBox.rbw +79 -79
  62. data/samples/bigdemo/wxDialog.rbw +92 -92
  63. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  64. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  65. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  66. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  67. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  68. data/samples/bigdemo/wxFrame.rbw +55 -55
  69. data/samples/bigdemo/wxGauge.rbw +73 -73
  70. data/samples/bigdemo/wxGrid.rbw +68 -68
  71. data/samples/bigdemo/wxListBox.rbw +142 -142
  72. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  73. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  74. data/samples/bigdemo/wxMenu.rbw +238 -238
  75. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  76. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  77. data/samples/bigdemo/wxNotebook.rbw +138 -138
  78. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  79. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  80. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  81. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  82. data/samples/bigdemo/wxScrolledWindow.rbw +196 -196
  83. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  84. data/samples/bigdemo/wxSlider.rbw +44 -44
  85. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  86. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  87. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  88. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  89. data/samples/bigdemo/wxStaticText.rbw +57 -57
  90. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  91. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  92. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  93. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  94. data/samples/bigdemo/wxToolBar.rbw +133 -133
  95. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  96. data/samples/calendar/calendar.rb +275 -275
  97. data/samples/caret/caret.rb +296 -296
  98. data/samples/caret/mondrian.xpm +44 -44
  99. data/samples/controls/controls.rb +1140 -1140
  100. data/samples/controls/get_item_sample.rb +87 -87
  101. data/samples/controls/icons/choice.xpm +27 -27
  102. data/samples/controls/icons/combo.xpm +27 -27
  103. data/samples/controls/icons/gauge.xpm +27 -27
  104. data/samples/controls/icons/list.xpm +27 -27
  105. data/samples/controls/icons/radio.xpm +27 -27
  106. data/samples/controls/icons/stattext.xpm +24 -24
  107. data/samples/controls/icons/text.xpm +27 -27
  108. data/samples/controls/mondrian.xpm +44 -44
  109. data/samples/dialogs/dialogs.rb +724 -724
  110. data/samples/dialogs/tips.txt +18 -18
  111. data/samples/etc/activation.rb +108 -108
  112. data/samples/etc/choice.rb +72 -72
  113. data/samples/etc/miniframe.rb +84 -84
  114. data/samples/etc/sash.rb +135 -135
  115. data/samples/etc/scrollwin.rb +116 -116
  116. data/samples/etc/system_settings.rb +258 -258
  117. data/samples/etc/wizard.rb +81 -81
  118. data/samples/event/event.rb +184 -0
  119. data/samples/images/images.rb +48 -48
  120. data/samples/listbook/listbook.rb +183 -183
  121. data/samples/listbook/listbook.xrc +370 -370
  122. data/samples/mdi/mdi.rb +87 -87
  123. data/samples/minimal/minimal.rb +83 -95
  124. data/samples/minimal/mondrian.png +0 -0
  125. data/samples/minimal/nothing.rb +46 -46
  126. data/samples/minimal/text.rb +35 -35
  127. data/samples/text/scintilla.rb +22 -28
  128. data/samples/text/textctrl.rb +124 -124
  129. data/samples/text/unicode.rb +238 -238
  130. data/samples/text/utf8.txt +14 -14
  131. data/samples/treectrl/treectrl.rb +1210 -1210
  132. data/samples/xrc/samples.xrc +46 -46
  133. data/samples/xrc/xrc_sample.rb +107 -107
  134. metadata +13 -5
  135. data/samples/minimal/mondrian.ico +0 -0
  136. data/samples/minimal/mondrian.xpm +0 -44
@@ -1,151 +1,151 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- TEXT = "Right-click on the panel (or Ctrl-click on the Mac) to show a popup\nmenu. Then look at the code for this sample. Notice how the\nPopupMenu method is similar to the ShowModal method of a wxDialog in\nthat it doesn't return until the popup menu has been dismissed. The\nevent handlers for the popup menu items can either be attached to the\nmenu itself, or to the window that invokes PopupMenu."
15
-
16
- class TestPanel < Wx::Panel
17
- def initialize(parent, log)
18
- @log = log
19
- super(parent, -1)
20
- @bound = false
21
- box = Wx::BoxSizer.new(Wx::VERTICAL)
22
-
23
- # Make and layout controls
24
- fs = get_font().get_point_size()
25
- bf = Wx::Font.new(fs + 4, Wx::SWISS, Wx::NORMAL, Wx::BOLD)
26
- nf = Wx::Font.new(fs + 2, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
27
-
28
- t = Wx::StaticText.new(self, -1, "Popup menu", Wx::DEFAULT_POSITION)
29
- t.set_font(bf)
30
- box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
31
-
32
- box.add(Wx::StaticLine.new(self, -1), 0, Wx::EXPAND)
33
- box.add(10,20)
34
-
35
- t = Wx::StaticText.new(self, -1, TEXT)
36
- t.set_font(nf)
37
- box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
38
-
39
- set_sizer(box)
40
-
41
- evt_right_up {|event| on_right_click(event)}
42
- end
43
-
44
- def on_right_click(event)
45
- @log.write_text("on_right_click")
46
-
47
- # only do this part the first time so the events are only bound once
48
- if @bound == false
49
- @popupID1,
50
- @popupID2,
51
- @popupID3,
52
- @popupID4,
53
- @popupID5,
54
- @popupID6,
55
- @popupID7,
56
- @popupID8,
57
- @popupID9 = (5000..5008).to_a()
58
- evt_menu(@popupID1) {|event| on_popup_one(event)}
59
- evt_menu(@popupID2) {|event| on_popup_two(event)}
60
- evt_menu(@popupID3) {|event| on_popup_three(event)}
61
- evt_menu(@popupID4) {|event| on_popup_four(event)}
62
- evt_menu(@popupID5) {|event| on_popup_five(event)}
63
- evt_menu(@popupID6) {|event| on_popup_six(event)}
64
- evt_menu(@popupID7) {|event| on_popup_seven(event)}
65
- evt_menu(@popupID8) {|event| on_popup_eight(event)}
66
- evt_menu(@popupID9) {|event| on_popup_nine(event)}
67
- @bound = true
68
- end
69
-
70
- # make a menu
71
- menu = Wx::Menu.new()
72
- # Show how to put an icon in the menu
73
- item = Wx::MenuItem.new(menu, @popupID1, "One")
74
- # set_bitmap is only available on GTK and Windows
75
- if item.respond_to?(:set_bitmap)
76
- bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiley.xpm')
77
- item.set_bitmap( Wx::Bitmap.new(bmp_file) )
78
- end
79
- menu.append_item(item)
80
- # add some other items
81
- menu.append(@popupID2, "Two")
82
- menu.append(@popupID3, "Three")
83
- menu.append(@popupID4, "Four")
84
- menu.append(@popupID5, "Five")
85
- menu.append(@popupID6, "Six")
86
- # make a submenu
87
- sm = Wx::Menu.new()
88
- sm.append(@popupID8, "sub item 1")
89
- sm.append(@popupID9, "sub item 2")
90
- mItem = Wx::MenuItem.new(menu, @popupID7, "Test Submenu", "", Wx::ITEM_NORMAL, sm)
91
- menu.append_item(mItem)
92
-
93
- popup_menu(menu, Wx::Point.new(event.get_x(), event.get_y()))
94
- #menu.destroy()
95
- end
96
-
97
- def on_popup_one(event)
98
- @log.write_text("Popup one")
99
- end
100
-
101
- def on_popup_two(event)
102
- @log.write_text("Popup two")
103
- end
104
-
105
- def on_popup_three(event)
106
- @log.write_text("Popup three")
107
- end
108
-
109
- def on_popup_four(event)
110
- @log.write_text("Popup four")
111
- end
112
-
113
- def on_popup_five(event)
114
- @log.write_text("Popup five")
115
- end
116
-
117
- def on_popup_six(event)
118
- @log.write_text("Popup six")
119
- end
120
-
121
- def on_popup_seven(event)
122
- @log.write_text("Popup seven")
123
- end
124
-
125
- def on_popup_eight(event)
126
- @log.write_text("Popup eight")
127
- end
128
-
129
- def on_popup_nine(event)
130
- @log.write_text("Popup nine")
131
- end
132
-
133
- end
134
-
135
- module Demo
136
- def Demo.run(frame, nb, log)
137
- win = TestPanel.new(nb, log)
138
- return win
139
- end
140
-
141
- def Demo.overview
142
- return ""
143
- end
144
- end
145
-
146
-
147
- if __FILE__ == $0
148
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
149
- load run_solo_lib
150
- run File.basename($0)
151
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ TEXT = "Right-click on the panel (or Ctrl-click on the Mac) to show a popup\nmenu. Then look at the code for this sample. Notice how the\nPopupMenu method is similar to the ShowModal method of a wxDialog in\nthat it doesn't return until the popup menu has been dismissed. The\nevent handlers for the popup menu items can either be attached to the\nmenu itself, or to the window that invokes PopupMenu."
15
+
16
+ class TestPanel < Wx::Panel
17
+ def initialize(parent, log)
18
+ @log = log
19
+ super(parent, -1)
20
+ @bound = false
21
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
22
+
23
+ # Make and layout controls
24
+ fs = get_font().get_point_size()
25
+ bf = Wx::Font.new(fs + 4, Wx::SWISS, Wx::NORMAL, Wx::BOLD)
26
+ nf = Wx::Font.new(fs + 2, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
27
+
28
+ t = Wx::StaticText.new(self, -1, "Popup menu", Wx::DEFAULT_POSITION)
29
+ t.set_font(bf)
30
+ box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
31
+
32
+ box.add(Wx::StaticLine.new(self, -1), 0, Wx::EXPAND)
33
+ box.add(10,20)
34
+
35
+ t = Wx::StaticText.new(self, -1, TEXT)
36
+ t.set_font(nf)
37
+ box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
38
+
39
+ set_sizer(box)
40
+
41
+ evt_right_up {|event| on_right_click(event)}
42
+ end
43
+
44
+ def on_right_click(event)
45
+ @log.write_text("on_right_click")
46
+
47
+ # only do this part the first time so the events are only bound once
48
+ if @bound == false
49
+ @popupID1,
50
+ @popupID2,
51
+ @popupID3,
52
+ @popupID4,
53
+ @popupID5,
54
+ @popupID6,
55
+ @popupID7,
56
+ @popupID8,
57
+ @popupID9 = (5000..5008).to_a()
58
+ evt_menu(@popupID1) {|event| on_popup_one(event)}
59
+ evt_menu(@popupID2) {|event| on_popup_two(event)}
60
+ evt_menu(@popupID3) {|event| on_popup_three(event)}
61
+ evt_menu(@popupID4) {|event| on_popup_four(event)}
62
+ evt_menu(@popupID5) {|event| on_popup_five(event)}
63
+ evt_menu(@popupID6) {|event| on_popup_six(event)}
64
+ evt_menu(@popupID7) {|event| on_popup_seven(event)}
65
+ evt_menu(@popupID8) {|event| on_popup_eight(event)}
66
+ evt_menu(@popupID9) {|event| on_popup_nine(event)}
67
+ @bound = true
68
+ end
69
+
70
+ # make a menu
71
+ menu = Wx::Menu.new()
72
+ # Show how to put an icon in the menu
73
+ item = Wx::MenuItem.new(menu, @popupID1, "One")
74
+ # set_bitmap is only available on GTK and Windows
75
+ if item.respond_to?(:set_bitmap)
76
+ bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiley.xpm')
77
+ item.set_bitmap( Wx::Bitmap.new(bmp_file) )
78
+ end
79
+ menu.append_item(item)
80
+ # add some other items
81
+ menu.append(@popupID2, "Two")
82
+ menu.append(@popupID3, "Three")
83
+ menu.append(@popupID4, "Four")
84
+ menu.append(@popupID5, "Five")
85
+ menu.append(@popupID6, "Six")
86
+ # make a submenu
87
+ sm = Wx::Menu.new()
88
+ sm.append(@popupID8, "sub item 1")
89
+ sm.append(@popupID9, "sub item 2")
90
+ mItem = Wx::MenuItem.new(menu, @popupID7, "Test Submenu", "", Wx::ITEM_NORMAL, sm)
91
+ menu.append_item(mItem)
92
+
93
+ popup_menu(menu, Wx::Point.new(event.get_x(), event.get_y()))
94
+ #menu.destroy()
95
+ end
96
+
97
+ def on_popup_one(event)
98
+ @log.write_text("Popup one")
99
+ end
100
+
101
+ def on_popup_two(event)
102
+ @log.write_text("Popup two")
103
+ end
104
+
105
+ def on_popup_three(event)
106
+ @log.write_text("Popup three")
107
+ end
108
+
109
+ def on_popup_four(event)
110
+ @log.write_text("Popup four")
111
+ end
112
+
113
+ def on_popup_five(event)
114
+ @log.write_text("Popup five")
115
+ end
116
+
117
+ def on_popup_six(event)
118
+ @log.write_text("Popup six")
119
+ end
120
+
121
+ def on_popup_seven(event)
122
+ @log.write_text("Popup seven")
123
+ end
124
+
125
+ def on_popup_eight(event)
126
+ @log.write_text("Popup eight")
127
+ end
128
+
129
+ def on_popup_nine(event)
130
+ @log.write_text("Popup nine")
131
+ end
132
+
133
+ end
134
+
135
+ module Demo
136
+ def Demo.run(frame, nb, log)
137
+ win = TestPanel.new(nb, log)
138
+ return win
139
+ end
140
+
141
+ def Demo.overview
142
+ return ""
143
+ end
144
+ end
145
+
146
+
147
+ if __FILE__ == $0
148
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
149
+ load run_solo_lib
150
+ run File.basename($0)
151
+ end
@@ -1,545 +1,545 @@
1
- #!/usr/bin/env ruby
2
-
3
- begin
4
- require 'wx'
5
- rescue LoadError => no_wx_err
6
- begin
7
- require 'rubygems'
8
- require 'wx'
9
- rescue LoadError
10
- raise no_wx_err
11
- end
12
- end
13
-
14
- def make_simple_box1(win)
15
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
16
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
17
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
18
- box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
19
- box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
20
-
21
- return box
22
- end
23
-
24
- #----------------------------------------------------------------------
25
-
26
- def make_simple_box2(win)
27
- box = Wx::BoxSizer.new(Wx::VERTICAL)
28
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
29
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
30
- box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
31
- box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
32
-
33
- return box
34
- end
35
-
36
- #----------------------------------------------------------------------
37
-
38
- def make_simple_box3(win)
39
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
40
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
41
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
42
- box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
43
- box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
44
- box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
45
-
46
- return box
47
- end
48
-
49
- #----------------------------------------------------------------------
50
-
51
- def make_simple_box4(win)
52
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
53
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
54
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
55
- box.add(Wx::Button.new(win, 1010, "three"), 1, Wx::EXPAND)
56
- box.add(Wx::Button.new(win, 1010, "four"), 1, Wx::EXPAND)
57
- box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
58
-
59
- return box
60
- end
61
-
62
- #----------------------------------------------------------------------
63
-
64
- def make_simple_box5(win)
65
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
66
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
67
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
68
- box.add(Wx::Button.new(win, 1010, "three"), 3, Wx::EXPAND)
69
- box.add(Wx::Button.new(win, 1010, "four"), 1, Wx::EXPAND)
70
- box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
71
-
72
- return box
73
- end
74
-
75
- #----------------------------------------------------------------------
76
-
77
- def make_simple_box6(win)
78
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
79
- box.add(Wx::Button.new(win, 1010, "one"), 1, Wx::ALIGN_TOP)
80
- box.add(Wx::Button.new(win, 1010, "two"), 1, Wx::EXPAND)
81
- box.add(Wx::Button.new(win, 1010, "three"), 1, Wx::ALIGN_CENTER)
82
- box.add(Wx::Button.new(win, 1010, "four"), 1, Wx::EXPAND)
83
- box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::ALIGN_BOTTOM)
84
-
85
- return box
86
- end
87
-
88
- #----------------------------------------------------------------------
89
-
90
- def make_simple_box7(win)
91
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
92
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
93
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
94
- box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
95
- box.add(60, 20, 0, Wx::EXPAND)
96
- box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
97
-
98
- return box
99
- end
100
-
101
- #----------------------------------------------------------------------
102
-
103
- def make_simple_box8(win)
104
- box = Wx::BoxSizer.new(Wx::VERTICAL)
105
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
106
- box.add(0,0,1)
107
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::ALIGN_CENTER)
108
- box.add(0,0,1)
109
- box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
110
- box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
111
- #box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
112
-
113
- return box
114
- end
115
-
116
- #----------------------------------------------------------------------
117
-
118
- def make_simple_border1(win)
119
- bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
120
- btn = Wx::Button.new(win, 1010, "border")
121
- btn.set_size(Wx::Size.new(80,80))
122
- bdr.add(btn, 1, Wx::EXPAND | Wx::ALL, 15)
123
-
124
- return bdr
125
- end
126
-
127
- #----------------------------------------------------------------------
128
-
129
- def make_simple_border2(win)
130
- bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
131
- btn = Wx::Button.new(win, 1010, "border")
132
- btn.set_size(Wx::Size.new(80,80))
133
- bdr.add(btn, 1, Wx::EXPAND | Wx::EAST | Wx::WEST, 15)
134
-
135
- return bdr
136
- end
137
-
138
- #----------------------------------------------------------------------
139
-
140
- def make_simple_border3(win)
141
- bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
142
- btn = Wx::Button.new(win, 1010, "border")
143
- btn.set_size(Wx::Size.new(80,80))
144
- bdr.add(btn, 1, Wx::EXPAND | Wx::NORTH | Wx::WEST, 15)
145
-
146
- return bdr
147
- end
148
-
149
- #----------------------------------------------------------------------
150
-
151
- def make_box_in_box(win)
152
- box = Wx::BoxSizer.new(Wx::VERTICAL)
153
-
154
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
155
-
156
- box2 = Wx::BoxSizer.new(Wx::HORIZONTAL)
157
- box2.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
158
- btn3 = Wx::Button.new(win, 1010, "three")
159
- box2.add(btn3, 0, Wx::EXPAND)
160
- box2.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
161
- box2.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
162
-
163
- box3 = Wx::BoxSizer.new(Wx::VERTICAL)
164
- box3.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
165
- box3.add(Wx::Button.new(win, 1010, "seven"), 2, Wx::EXPAND)
166
- box3.add(Wx::Button.new(win, 1010, "eight"), 1, Wx::EXPAND)
167
- box3.add(Wx::Button.new(win, 1010, "nine"), 1, Wx::EXPAND)
168
-
169
- box2.add(box3, 1, Wx::EXPAND)
170
- box.add(box2, 1, Wx::EXPAND)
171
-
172
- box.add(Wx::Button.new(win, 1010, "ten"), 0, Wx::EXPAND)
173
-
174
- return box
175
- end
176
-
177
- #----------------------------------------------------------------------
178
-
179
- def make_box_in_border(win)
180
- bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
181
- box = make_simple_box3(win)
182
- bdr.add(box, 1, Wx::EXPAND | Wx::ALL, 15)
183
-
184
- return bdr
185
- end
186
-
187
- #----------------------------------------------------------------------
188
-
189
- def make_border_in_box(win)
190
- insideBox = Wx::BoxSizer.new(Wx::HORIZONTAL)
191
-
192
- box2 = Wx::BoxSizer.new(Wx::HORIZONTAL)
193
- box2.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
194
- box2.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
195
- box2.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
196
- box2.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
197
- box2.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
198
-
199
- insideBox.add(box2, 0, Wx::EXPAND)
200
-
201
- bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
202
- bdr.add(Wx::Button.new(win, 1010, "border"), 1, Wx::EXPAND | Wx::ALL)
203
- insideBox.add(bdr, 1, Wx::EXPAND | Wx::ALL, 20)
204
-
205
- box3 = Wx::BoxSizer.new(Wx::VERTICAL)
206
- box3.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
207
- box3.add(Wx::Button.new(win, 1010, "seven"), 2, Wx::EXPAND)
208
- box3.add(Wx::Button.new(win, 1010, "eight"), 1, Wx::EXPAND)
209
- box3.add(Wx::Button.new(win, 1010, "nine"), 1, Wx::EXPAND)
210
- insideBox.add(box3, 1, Wx::EXPAND)
211
-
212
- outsideBox = Wx::BoxSizer.new(Wx::VERTICAL)
213
- outsideBox.add(Wx::Button.new(win, 1010, "top"), 0, Wx::EXPAND)
214
- outsideBox.add(insideBox, 1, Wx::EXPAND)
215
- outsideBox.add(Wx::Button.new(win, 1010, "bottom"), 0, Wx::EXPAND)
216
-
217
- return outsideBox
218
-
219
- end
220
-
221
- #----------------------------------------------------------------------
222
-
223
- def make_grid1(win)
224
- gs = Wx::GridSizer.new(3,3,2,2) # rows, cols, hgap, vgap
225
-
226
- gs.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
227
- gs.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
228
- gs.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
229
- gs.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
230
- gs.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
231
- gs.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
232
- gs.add(Wx::Button.new(win, 1010, "seven"), 0, Wx::EXPAND)
233
- gs.add(Wx::Button.new(win, 1010, "eight"), 0, Wx::EXPAND)
234
- gs.add(Wx::Button.new(win, 1010, "nine"), 0, Wx::EXPAND)
235
-
236
- return gs
237
- end
238
-
239
- #----------------------------------------------------------------------
240
-
241
- def make_grid2(win)
242
- gs = Wx::GridSizer.new(3,3) # rows, cols, hgap, vgap
243
-
244
- box = Wx::BoxSizer.new(Wx::VERTICAL)
245
- box.add(Wx::Button.new(win, 1010, "A"), 0, Wx::EXPAND)
246
- box.add(Wx::Button.new(win, 1010, "B"), 1, Wx::EXPAND)
247
-
248
- gs2 = Wx::GridSizer.new(2,2,4,4) # rows, cols, hgap, vgap
249
- gs2.add(Wx::Button.new(win, 1010, "C"), 0, Wx::EXPAND)
250
- gs2.add(Wx::Button.new(win, 1010, "E"), 0, Wx::EXPAND)
251
- gs2.add(Wx::Button.new(win, 1010, "F"), 0, Wx::EXPAND)
252
- gs2.add(Wx::Button.new(win, 1010, "G"), 0, Wx::EXPAND)
253
-
254
- gs.add(Wx::Button.new(win, 1010, "one"), 0, Wx::ALIGN_RIGHT | Wx::ALIGN_BOTTOM)
255
- gs.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
256
- gs.add(Wx::Button.new(win, 1010, "three"), 0, Wx::ALIGN_LEFT | Wx::ALIGN_BOTTOM)
257
- gs.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
258
- gs.add(Wx::Button.new(win, 1010, "five"), 0, Wx::ALIGN_CENTER)
259
- gs.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
260
- gs.add(box, 0, Wx::EXPAND | Wx::ALL, 10)
261
- gs.add(Wx::Button.new(win, 1010, "eight"), 0, Wx::EXPAND)
262
- gs.add(gs2, 0, Wx::EXPAND | Wx::ALL, 4)
263
-
264
- return gs
265
- end
266
-
267
- #----------------------------------------------------------------------
268
-
269
- def make_grid3(win)
270
- gs = Wx::FlexGridSizer.new(3,3,2,2) # rows, cols, hgap, vgap
271
-
272
- gs.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
273
- gs.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
274
- gs.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
275
- gs.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
276
- #gs.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
277
- gs.add(175, 50)
278
- gs.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
279
- gs.add(Wx::Button.new(win, 1010, "seven"), 0, Wx::EXPAND)
280
- gs.add(Wx::Button.new(win, 1010, "eight"), 0, Wx::EXPAND)
281
- gs.add(Wx::Button.new(win, 1010, "nine"), 0, Wx::EXPAND)
282
-
283
- gs.add_growable_row(0)
284
- gs.add_growable_row(2)
285
- gs.add_growable_col(1)
286
- return gs
287
- end
288
-
289
- #----------------------------------------------------------------------
290
-
291
- def make_grid4(win)
292
- bpos = Wx::DEFAULT_POSITION
293
- bsize = Wx::Size.new(100,50)
294
- gs = Wx::GridSizer.new(3,3,2,2) #rows, cols, hgap, vgap
295
-
296
- gs.add(Wx::Button.new(win, 1010, "one", bpos, bsize), 0, Wx::ALIGN_TOP | Wx::ALIGN_LEFT)
297
- gs.add(Wx::Button.new(win, 1010, "two", bpos, bsize), 0, Wx::ALIGN_TOP | Wx::ALIGN_CENTER_HORIZONTAL)
298
- gs.add(Wx::Button.new(win, 1010, "three", bpos, bsize), 0, Wx::ALIGN_TOP | Wx::ALIGN_RIGHT)
299
- gs.add(Wx::Button.new(win, 1010, "four", bpos, bsize), 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_LEFT)
300
- gs.add(Wx::Button.new(win, 1010, "five", bpos, bsize), 0, Wx::ALIGN_CENTER)
301
- gs.add(Wx::Button.new(win, 1010, "six", bpos, bsize), 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT)
302
- gs.add(Wx::Button.new(win, 1010, "seven", bpos, bsize), 0, Wx::ALIGN_BOTTOM | Wx::ALIGN_LEFT)
303
- gs.add(Wx::Button.new(win, 1010, "eight", bpos, bsize), 0, Wx::ALIGN_BOTTOM | Wx::ALIGN_CENTER_HORIZONTAL)
304
- gs.add(Wx::Button.new(win, 1010, "nine", bpos, bsize), 0, Wx::ALIGN_BOTTOM | Wx::ALIGN_RIGHT)
305
-
306
- return gs
307
-
308
- end
309
-
310
- #----------------------------------------------------------------------
311
-
312
- def make_shapes(win)
313
- bpos = Wx::DEFAULT_POSITION
314
- bsize = Wx::Size.new(100,50)
315
- gs = Wx::GridSizer.new(3,3,2,2) #rows, cols, hgap, vgap
316
-
317
- gs.add(Wx::Button.new(win, 1010, "one", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_TOP | Wx::ALIGN_LEFT)
318
- gs.add(Wx::Button.new(win, 1010, "two", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_TOP | Wx::ALIGN_CENTER_HORIZONTAL)
319
- gs.add(Wx::Button.new(win, 1010, "three", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_TOP | Wx::ALIGN_RIGHT)
320
- gs.add(Wx::Button.new(win, 1010, "four", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_LEFT)
321
- gs.add(Wx::Button.new(win, 1010, "five", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_CENTER)
322
- gs.add(Wx::Button.new(win, 1010, "six", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT)
323
- gs.add(Wx::Button.new(win, 1010, "seven", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_BOTTOM | Wx::ALIGN_LEFT)
324
- gs.add(Wx::Button.new(win, 1010, "eight", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_BOTTOM | Wx::ALIGN_CENTER_HORIZONTAL)
325
- gs.add(Wx::Button.new(win, 1010, "nine", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_BOTTOM | Wx::ALIGN_RIGHT)
326
-
327
- return gs
328
- end
329
-
330
- #----------------------------------------------------------------------
331
-
332
- def make_simple_box_shaped(win)
333
- box = Wx::BoxSizer.new(Wx::HORIZONTAL)
334
- box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
335
- box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
336
- box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
337
- box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
338
- box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::SHAPED)
339
-
340
- return box
341
- end
342
-
343
- #----------------------------------------------------------------------
344
-
345
- $theTests = [
346
- ["Simple horizontal boxes", "make_simple_box1",
347
- "This is a HORIZONTAL box sizer with four non-stretchable buttons held " +
348
- "within it. Notice that the buttons are added and aligned in the horizontal " +
349
- "dimension. Also notice that they are fixed size in the horizontal dimension, " +
350
- "but will stretch vertically."
351
- ],
352
-
353
- ["Simple vertical boxes", "make_simple_box2",
354
- "Exactly the same as the previous sample but using a VERTICAL box sizer " +
355
- "instead of a HORIZONTAL one."
356
- ],
357
-
358
- ["Add a stretchable", "make_simple_box3",
359
- "We've added one more button with the stretchable flag turned on. Notice " +
360
- "how it grows to fill the extra space in the otherwise fixed dimension."
361
- ],
362
-
363
- ["More than one stretchable", "make_simple_box4",
364
- "Here there are several items that are stretchable, they all divide up the " +
365
- "extra space evenly."
366
- ],
367
-
368
- ["Weighting factor", "make_simple_box5",
369
- "This one shows more than one stretchable, but one of them has a weighting " +
370
- "factor so it gets more of the free space."
371
- ],
372
-
373
- ["Edge Affinity", "make_simple_box6",
374
- "For items that don't completly fill their allotted space, and don't " +
375
- "stretch, you can specify which side [or the center] they should stay " +
376
- "attached to."
377
- ],
378
-
379
- ["Spacer", "make_simple_box7",
380
- "You can add empty space to be managed by a Sizer just as if it were a " +
381
- "window or another Sizer."
382
- ],
383
-
384
- ["Centering in available space", "make_simple_box8",
385
- "This one shows an item that does not expand to fill it's space, but rather " +
386
- "stays centered within it."
387
- ],
388
-
389
- # ["Percent Sizer", "make_simple_box6",
390
- # "You can use the wxBoxSizer like a Percent Sizer. Just make sure that all "
391
- # "the weighting factors add up to 100!"
392
- # ],
393
-
394
- ["", nil, ""],
395
-
396
- ["Simple border sizer", "make_simple_border1",
397
- "The wxBoxSizer can leave empty space around its contents. This one " +
398
- "gives a border all the way around."
399
- ],
400
-
401
- ["East and West border", "make_simple_border2",
402
- "You can pick and choose which sides have borders."
403
- ],
404
-
405
- ["North and West border", "make_simple_border3",
406
- "You can pick and choose which sides have borders."
407
- ],
408
-
409
- ["", nil, ""],
410
-
411
- ["Boxes inside of boxes", "make_box_in_box",
412
- "This one shows nesting of boxes within boxes within boxes, using both " +
413
- "orientations. Notice also that button seven has a greater weighting " +
414
- "factor than its siblings."
415
- ],
416
-
417
- ["Boxes inside a Border", "make_box_in_border",
418
- "Sizers of different types can be nested within each other as well. " +
419
- "Here is a box sizer with several buttons embedded within a border sizer."
420
- ],
421
-
422
- ["Border in a Box", "make_border_in_box",
423
- "Another nesting example. This one has Boxes and a Border inside another Box."
424
- ],
425
-
426
- ["", nil, ""],
427
-
428
- ["Simple Grid", "make_grid1",
429
- "This is an example of the wxGridSizer. In this case all row heights " +
430
- "and column widths are kept the same as all the others and all items " +
431
- "fill their available space. The horizontal and vertical gaps are set to " +
432
- "2 pixels each."
433
- ],
434
-
435
- ["More Grid Features", "make_grid2",
436
- "This is another example of the wxGridSizer. This one has no gaps in the grid, " +
437
- "but various cells are given different alignment options and some of them " +
438
- "hold nested sizers."
439
- ],
440
-
441
- ["Flexible Grid", "make_grid3",
442
- "This grid allows the rows to have different heights and the columns to have " +
443
- "different widths. You can also specify rows and columns that are growable, " +
444
- "which we have done for the first and last row and the middle column for " +
445
- "this example.\n" +
446
- "\nThere is also a spacer in the middle cell instead of an actual window."
447
- ],
448
-
449
- ["Grid with Alignment", "make_grid4",
450
- "New alignment flags allow for the positioning of items in any corner or centered " +
451
- "position."
452
- ],
453
-
454
- ["", nil, ""],
455
-
456
- ["Proportional resize", "make_simple_box_shaped",
457
- "Managed items can preserve their original aspect ratio. The last item has the " +
458
- "wxSHAPED flag set and will resize proportional to its original size."
459
- ],
460
-
461
- ["Proportional resize with Alignments", "make_shapes",
462
- "This one shows various alignments as well as proportional resizing for all items."
463
- ],
464
-
465
- ]
466
- #----------------------------------------------------------------------
467
-
468
- class TestFrame < Wx::Frame
469
- def initialize(parent, title, sizerFunc)
470
- super(parent, -1, title)
471
- evt_button(1010) {|event| on_button(event)}
472
-
473
- method = Object.method(sizerFunc)
474
- @sizer = method.call(self)
475
- create_status_bar()
476
- set_status_text("Resize this frame to see how the sizers respond...")
477
- @sizer.fit(self)
478
-
479
- set_sizer(@sizer)
480
- evt_close {|event| on_close_window(event)}
481
- end
482
-
483
- def on_close_window(event)
484
- make_modal(false)
485
- destroy()
486
- end
487
-
488
- def on_button(event)
489
- close(true)
490
- end
491
- end
492
-
493
- class TestSelectionPanel < Wx::Panel
494
- def initialize(parent, frame)
495
- super(parent, -1)
496
- @frame = frame
497
-
498
- @list = Wx::ListBox.new(self, 401, Wx::Point.new(10,10), Wx::Size.new(175,150))
499
- evt_listbox(401) {|event| on_select(event)}
500
- evt_listbox_dclick(401) {|event| on_d_click(event)}
501
-
502
- @btn = Wx::Button.new(self, 402, "Try it!", Wx::Point.new(200, 10))
503
- evt_button(402) {|event| on_d_click(event)}
504
-
505
- @text = Wx::TextCtrl.new(self, -1, "", Wx::Point.new(10, 175), Wx::Size.new(350,75), Wx::TE_MULTILINE | Wx::TE_READONLY)
506
-
507
- $theTests.each {|item| @list.append(item[0])}
508
- @list.select(0)
509
- end
510
-
511
- def on_select(event)
512
- pos = @list.get_selection()
513
- @text.set_value($theTests[pos][2])
514
- end
515
-
516
- def on_d_click(event)
517
- pos = @list.get_selection()
518
- title = $theTests[pos][0]
519
- func = $theTests[pos][1]
520
-
521
- if func
522
- win = TestFrame.new(self, title, func)
523
- win.centre_on_parent(Wx::BOTH)
524
- win.show()
525
- win.make_modal(true)
526
- end
527
- end
528
- end
529
-
530
- module Demo
531
- def Demo.run(frame,nb,log)
532
- win = TestSelectionPanel.new(nb, frame)
533
- return win
534
- end
535
-
536
- def Demo.overview
537
- ""
538
- end
539
- end
540
-
541
- if __FILE__ == $0
542
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
543
- load run_solo_lib
544
- run File.basename($0)
545
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'wx'
5
+ rescue LoadError => no_wx_err
6
+ begin
7
+ require 'rubygems'
8
+ require 'wx'
9
+ rescue LoadError
10
+ raise no_wx_err
11
+ end
12
+ end
13
+
14
+ def make_simple_box1(win)
15
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
16
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
17
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
18
+ box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
19
+ box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
20
+
21
+ return box
22
+ end
23
+
24
+ #----------------------------------------------------------------------
25
+
26
+ def make_simple_box2(win)
27
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
28
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
29
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
30
+ box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
31
+ box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
32
+
33
+ return box
34
+ end
35
+
36
+ #----------------------------------------------------------------------
37
+
38
+ def make_simple_box3(win)
39
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
40
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
41
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
42
+ box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
43
+ box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
44
+ box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
45
+
46
+ return box
47
+ end
48
+
49
+ #----------------------------------------------------------------------
50
+
51
+ def make_simple_box4(win)
52
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
53
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
54
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
55
+ box.add(Wx::Button.new(win, 1010, "three"), 1, Wx::EXPAND)
56
+ box.add(Wx::Button.new(win, 1010, "four"), 1, Wx::EXPAND)
57
+ box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
58
+
59
+ return box
60
+ end
61
+
62
+ #----------------------------------------------------------------------
63
+
64
+ def make_simple_box5(win)
65
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
66
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
67
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
68
+ box.add(Wx::Button.new(win, 1010, "three"), 3, Wx::EXPAND)
69
+ box.add(Wx::Button.new(win, 1010, "four"), 1, Wx::EXPAND)
70
+ box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
71
+
72
+ return box
73
+ end
74
+
75
+ #----------------------------------------------------------------------
76
+
77
+ def make_simple_box6(win)
78
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
79
+ box.add(Wx::Button.new(win, 1010, "one"), 1, Wx::ALIGN_TOP)
80
+ box.add(Wx::Button.new(win, 1010, "two"), 1, Wx::EXPAND)
81
+ box.add(Wx::Button.new(win, 1010, "three"), 1, Wx::ALIGN_CENTER)
82
+ box.add(Wx::Button.new(win, 1010, "four"), 1, Wx::EXPAND)
83
+ box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::ALIGN_BOTTOM)
84
+
85
+ return box
86
+ end
87
+
88
+ #----------------------------------------------------------------------
89
+
90
+ def make_simple_box7(win)
91
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
92
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
93
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
94
+ box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
95
+ box.add(60, 20, 0, Wx::EXPAND)
96
+ box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
97
+
98
+ return box
99
+ end
100
+
101
+ #----------------------------------------------------------------------
102
+
103
+ def make_simple_box8(win)
104
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
105
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
106
+ box.add(0,0,1)
107
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::ALIGN_CENTER)
108
+ box.add(0,0,1)
109
+ box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
110
+ box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
111
+ #box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::EXPAND)
112
+
113
+ return box
114
+ end
115
+
116
+ #----------------------------------------------------------------------
117
+
118
+ def make_simple_border1(win)
119
+ bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
120
+ btn = Wx::Button.new(win, 1010, "border")
121
+ btn.set_size(Wx::Size.new(80,80))
122
+ bdr.add(btn, 1, Wx::EXPAND | Wx::ALL, 15)
123
+
124
+ return bdr
125
+ end
126
+
127
+ #----------------------------------------------------------------------
128
+
129
+ def make_simple_border2(win)
130
+ bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
131
+ btn = Wx::Button.new(win, 1010, "border")
132
+ btn.set_size(Wx::Size.new(80,80))
133
+ bdr.add(btn, 1, Wx::EXPAND | Wx::EAST | Wx::WEST, 15)
134
+
135
+ return bdr
136
+ end
137
+
138
+ #----------------------------------------------------------------------
139
+
140
+ def make_simple_border3(win)
141
+ bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
142
+ btn = Wx::Button.new(win, 1010, "border")
143
+ btn.set_size(Wx::Size.new(80,80))
144
+ bdr.add(btn, 1, Wx::EXPAND | Wx::NORTH | Wx::WEST, 15)
145
+
146
+ return bdr
147
+ end
148
+
149
+ #----------------------------------------------------------------------
150
+
151
+ def make_box_in_box(win)
152
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
153
+
154
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
155
+
156
+ box2 = Wx::BoxSizer.new(Wx::HORIZONTAL)
157
+ box2.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
158
+ btn3 = Wx::Button.new(win, 1010, "three")
159
+ box2.add(btn3, 0, Wx::EXPAND)
160
+ box2.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
161
+ box2.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
162
+
163
+ box3 = Wx::BoxSizer.new(Wx::VERTICAL)
164
+ box3.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
165
+ box3.add(Wx::Button.new(win, 1010, "seven"), 2, Wx::EXPAND)
166
+ box3.add(Wx::Button.new(win, 1010, "eight"), 1, Wx::EXPAND)
167
+ box3.add(Wx::Button.new(win, 1010, "nine"), 1, Wx::EXPAND)
168
+
169
+ box2.add(box3, 1, Wx::EXPAND)
170
+ box.add(box2, 1, Wx::EXPAND)
171
+
172
+ box.add(Wx::Button.new(win, 1010, "ten"), 0, Wx::EXPAND)
173
+
174
+ return box
175
+ end
176
+
177
+ #----------------------------------------------------------------------
178
+
179
+ def make_box_in_border(win)
180
+ bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
181
+ box = make_simple_box3(win)
182
+ bdr.add(box, 1, Wx::EXPAND | Wx::ALL, 15)
183
+
184
+ return bdr
185
+ end
186
+
187
+ #----------------------------------------------------------------------
188
+
189
+ def make_border_in_box(win)
190
+ insideBox = Wx::BoxSizer.new(Wx::HORIZONTAL)
191
+
192
+ box2 = Wx::BoxSizer.new(Wx::HORIZONTAL)
193
+ box2.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
194
+ box2.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
195
+ box2.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
196
+ box2.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
197
+ box2.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
198
+
199
+ insideBox.add(box2, 0, Wx::EXPAND)
200
+
201
+ bdr = Wx::BoxSizer.new(Wx::HORIZONTAL)
202
+ bdr.add(Wx::Button.new(win, 1010, "border"), 1, Wx::EXPAND | Wx::ALL)
203
+ insideBox.add(bdr, 1, Wx::EXPAND | Wx::ALL, 20)
204
+
205
+ box3 = Wx::BoxSizer.new(Wx::VERTICAL)
206
+ box3.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
207
+ box3.add(Wx::Button.new(win, 1010, "seven"), 2, Wx::EXPAND)
208
+ box3.add(Wx::Button.new(win, 1010, "eight"), 1, Wx::EXPAND)
209
+ box3.add(Wx::Button.new(win, 1010, "nine"), 1, Wx::EXPAND)
210
+ insideBox.add(box3, 1, Wx::EXPAND)
211
+
212
+ outsideBox = Wx::BoxSizer.new(Wx::VERTICAL)
213
+ outsideBox.add(Wx::Button.new(win, 1010, "top"), 0, Wx::EXPAND)
214
+ outsideBox.add(insideBox, 1, Wx::EXPAND)
215
+ outsideBox.add(Wx::Button.new(win, 1010, "bottom"), 0, Wx::EXPAND)
216
+
217
+ return outsideBox
218
+
219
+ end
220
+
221
+ #----------------------------------------------------------------------
222
+
223
+ def make_grid1(win)
224
+ gs = Wx::GridSizer.new(3,3,2,2) # rows, cols, hgap, vgap
225
+
226
+ gs.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
227
+ gs.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
228
+ gs.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
229
+ gs.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
230
+ gs.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
231
+ gs.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
232
+ gs.add(Wx::Button.new(win, 1010, "seven"), 0, Wx::EXPAND)
233
+ gs.add(Wx::Button.new(win, 1010, "eight"), 0, Wx::EXPAND)
234
+ gs.add(Wx::Button.new(win, 1010, "nine"), 0, Wx::EXPAND)
235
+
236
+ return gs
237
+ end
238
+
239
+ #----------------------------------------------------------------------
240
+
241
+ def make_grid2(win)
242
+ gs = Wx::GridSizer.new(3,3) # rows, cols, hgap, vgap
243
+
244
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
245
+ box.add(Wx::Button.new(win, 1010, "A"), 0, Wx::EXPAND)
246
+ box.add(Wx::Button.new(win, 1010, "B"), 1, Wx::EXPAND)
247
+
248
+ gs2 = Wx::GridSizer.new(2,2,4,4) # rows, cols, hgap, vgap
249
+ gs2.add(Wx::Button.new(win, 1010, "C"), 0, Wx::EXPAND)
250
+ gs2.add(Wx::Button.new(win, 1010, "E"), 0, Wx::EXPAND)
251
+ gs2.add(Wx::Button.new(win, 1010, "F"), 0, Wx::EXPAND)
252
+ gs2.add(Wx::Button.new(win, 1010, "G"), 0, Wx::EXPAND)
253
+
254
+ gs.add(Wx::Button.new(win, 1010, "one"), 0, Wx::ALIGN_RIGHT | Wx::ALIGN_BOTTOM)
255
+ gs.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
256
+ gs.add(Wx::Button.new(win, 1010, "three"), 0, Wx::ALIGN_LEFT | Wx::ALIGN_BOTTOM)
257
+ gs.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
258
+ gs.add(Wx::Button.new(win, 1010, "five"), 0, Wx::ALIGN_CENTER)
259
+ gs.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
260
+ gs.add(box, 0, Wx::EXPAND | Wx::ALL, 10)
261
+ gs.add(Wx::Button.new(win, 1010, "eight"), 0, Wx::EXPAND)
262
+ gs.add(gs2, 0, Wx::EXPAND | Wx::ALL, 4)
263
+
264
+ return gs
265
+ end
266
+
267
+ #----------------------------------------------------------------------
268
+
269
+ def make_grid3(win)
270
+ gs = Wx::FlexGridSizer.new(3,3,2,2) # rows, cols, hgap, vgap
271
+
272
+ gs.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
273
+ gs.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
274
+ gs.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
275
+ gs.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
276
+ #gs.add(Wx::Button.new(win, 1010, "five"), 0, Wx::EXPAND)
277
+ gs.add(175, 50)
278
+ gs.add(Wx::Button.new(win, 1010, "six"), 0, Wx::EXPAND)
279
+ gs.add(Wx::Button.new(win, 1010, "seven"), 0, Wx::EXPAND)
280
+ gs.add(Wx::Button.new(win, 1010, "eight"), 0, Wx::EXPAND)
281
+ gs.add(Wx::Button.new(win, 1010, "nine"), 0, Wx::EXPAND)
282
+
283
+ gs.add_growable_row(0)
284
+ gs.add_growable_row(2)
285
+ gs.add_growable_col(1)
286
+ return gs
287
+ end
288
+
289
+ #----------------------------------------------------------------------
290
+
291
+ def make_grid4(win)
292
+ bpos = Wx::DEFAULT_POSITION
293
+ bsize = Wx::Size.new(100,50)
294
+ gs = Wx::GridSizer.new(3,3,2,2) #rows, cols, hgap, vgap
295
+
296
+ gs.add(Wx::Button.new(win, 1010, "one", bpos, bsize), 0, Wx::ALIGN_TOP | Wx::ALIGN_LEFT)
297
+ gs.add(Wx::Button.new(win, 1010, "two", bpos, bsize), 0, Wx::ALIGN_TOP | Wx::ALIGN_CENTER_HORIZONTAL)
298
+ gs.add(Wx::Button.new(win, 1010, "three", bpos, bsize), 0, Wx::ALIGN_TOP | Wx::ALIGN_RIGHT)
299
+ gs.add(Wx::Button.new(win, 1010, "four", bpos, bsize), 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_LEFT)
300
+ gs.add(Wx::Button.new(win, 1010, "five", bpos, bsize), 0, Wx::ALIGN_CENTER)
301
+ gs.add(Wx::Button.new(win, 1010, "six", bpos, bsize), 0, Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT)
302
+ gs.add(Wx::Button.new(win, 1010, "seven", bpos, bsize), 0, Wx::ALIGN_BOTTOM | Wx::ALIGN_LEFT)
303
+ gs.add(Wx::Button.new(win, 1010, "eight", bpos, bsize), 0, Wx::ALIGN_BOTTOM | Wx::ALIGN_CENTER_HORIZONTAL)
304
+ gs.add(Wx::Button.new(win, 1010, "nine", bpos, bsize), 0, Wx::ALIGN_BOTTOM | Wx::ALIGN_RIGHT)
305
+
306
+ return gs
307
+
308
+ end
309
+
310
+ #----------------------------------------------------------------------
311
+
312
+ def make_shapes(win)
313
+ bpos = Wx::DEFAULT_POSITION
314
+ bsize = Wx::Size.new(100,50)
315
+ gs = Wx::GridSizer.new(3,3,2,2) #rows, cols, hgap, vgap
316
+
317
+ gs.add(Wx::Button.new(win, 1010, "one", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_TOP | Wx::ALIGN_LEFT)
318
+ gs.add(Wx::Button.new(win, 1010, "two", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_TOP | Wx::ALIGN_CENTER_HORIZONTAL)
319
+ gs.add(Wx::Button.new(win, 1010, "three", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_TOP | Wx::ALIGN_RIGHT)
320
+ gs.add(Wx::Button.new(win, 1010, "four", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_LEFT)
321
+ gs.add(Wx::Button.new(win, 1010, "five", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_CENTER)
322
+ gs.add(Wx::Button.new(win, 1010, "six", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_CENTER_VERTICAL | Wx::ALIGN_RIGHT)
323
+ gs.add(Wx::Button.new(win, 1010, "seven", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_BOTTOM | Wx::ALIGN_LEFT)
324
+ gs.add(Wx::Button.new(win, 1010, "eight", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_BOTTOM | Wx::ALIGN_CENTER_HORIZONTAL)
325
+ gs.add(Wx::Button.new(win, 1010, "nine", bpos, bsize), 0, Wx::SHAPED | Wx::ALIGN_BOTTOM | Wx::ALIGN_RIGHT)
326
+
327
+ return gs
328
+ end
329
+
330
+ #----------------------------------------------------------------------
331
+
332
+ def make_simple_box_shaped(win)
333
+ box = Wx::BoxSizer.new(Wx::HORIZONTAL)
334
+ box.add(Wx::Button.new(win, 1010, "one"), 0, Wx::EXPAND)
335
+ box.add(Wx::Button.new(win, 1010, "two"), 0, Wx::EXPAND)
336
+ box.add(Wx::Button.new(win, 1010, "three"), 0, Wx::EXPAND)
337
+ box.add(Wx::Button.new(win, 1010, "four"), 0, Wx::EXPAND)
338
+ box.add(Wx::Button.new(win, 1010, "five"), 1, Wx::SHAPED)
339
+
340
+ return box
341
+ end
342
+
343
+ #----------------------------------------------------------------------
344
+
345
+ $theTests = [
346
+ ["Simple horizontal boxes", "make_simple_box1",
347
+ "This is a HORIZONTAL box sizer with four non-stretchable buttons held " +
348
+ "within it. Notice that the buttons are added and aligned in the horizontal " +
349
+ "dimension. Also notice that they are fixed size in the horizontal dimension, " +
350
+ "but will stretch vertically."
351
+ ],
352
+
353
+ ["Simple vertical boxes", "make_simple_box2",
354
+ "Exactly the same as the previous sample but using a VERTICAL box sizer " +
355
+ "instead of a HORIZONTAL one."
356
+ ],
357
+
358
+ ["Add a stretchable", "make_simple_box3",
359
+ "We've added one more button with the stretchable flag turned on. Notice " +
360
+ "how it grows to fill the extra space in the otherwise fixed dimension."
361
+ ],
362
+
363
+ ["More than one stretchable", "make_simple_box4",
364
+ "Here there are several items that are stretchable, they all divide up the " +
365
+ "extra space evenly."
366
+ ],
367
+
368
+ ["Weighting factor", "make_simple_box5",
369
+ "This one shows more than one stretchable, but one of them has a weighting " +
370
+ "factor so it gets more of the free space."
371
+ ],
372
+
373
+ ["Edge Affinity", "make_simple_box6",
374
+ "For items that don't completly fill their allotted space, and don't " +
375
+ "stretch, you can specify which side [or the center] they should stay " +
376
+ "attached to."
377
+ ],
378
+
379
+ ["Spacer", "make_simple_box7",
380
+ "You can add empty space to be managed by a Sizer just as if it were a " +
381
+ "window or another Sizer."
382
+ ],
383
+
384
+ ["Centering in available space", "make_simple_box8",
385
+ "This one shows an item that does not expand to fill it's space, but rather " +
386
+ "stays centered within it."
387
+ ],
388
+
389
+ # ["Percent Sizer", "make_simple_box6",
390
+ # "You can use the wxBoxSizer like a Percent Sizer. Just make sure that all "
391
+ # "the weighting factors add up to 100!"
392
+ # ],
393
+
394
+ ["", nil, ""],
395
+
396
+ ["Simple border sizer", "make_simple_border1",
397
+ "The wxBoxSizer can leave empty space around its contents. This one " +
398
+ "gives a border all the way around."
399
+ ],
400
+
401
+ ["East and West border", "make_simple_border2",
402
+ "You can pick and choose which sides have borders."
403
+ ],
404
+
405
+ ["North and West border", "make_simple_border3",
406
+ "You can pick and choose which sides have borders."
407
+ ],
408
+
409
+ ["", nil, ""],
410
+
411
+ ["Boxes inside of boxes", "make_box_in_box",
412
+ "This one shows nesting of boxes within boxes within boxes, using both " +
413
+ "orientations. Notice also that button seven has a greater weighting " +
414
+ "factor than its siblings."
415
+ ],
416
+
417
+ ["Boxes inside a Border", "make_box_in_border",
418
+ "Sizers of different types can be nested within each other as well. " +
419
+ "Here is a box sizer with several buttons embedded within a border sizer."
420
+ ],
421
+
422
+ ["Border in a Box", "make_border_in_box",
423
+ "Another nesting example. This one has Boxes and a Border inside another Box."
424
+ ],
425
+
426
+ ["", nil, ""],
427
+
428
+ ["Simple Grid", "make_grid1",
429
+ "This is an example of the wxGridSizer. In this case all row heights " +
430
+ "and column widths are kept the same as all the others and all items " +
431
+ "fill their available space. The horizontal and vertical gaps are set to " +
432
+ "2 pixels each."
433
+ ],
434
+
435
+ ["More Grid Features", "make_grid2",
436
+ "This is another example of the wxGridSizer. This one has no gaps in the grid, " +
437
+ "but various cells are given different alignment options and some of them " +
438
+ "hold nested sizers."
439
+ ],
440
+
441
+ ["Flexible Grid", "make_grid3",
442
+ "This grid allows the rows to have different heights and the columns to have " +
443
+ "different widths. You can also specify rows and columns that are growable, " +
444
+ "which we have done for the first and last row and the middle column for " +
445
+ "this example.\n" +
446
+ "\nThere is also a spacer in the middle cell instead of an actual window."
447
+ ],
448
+
449
+ ["Grid with Alignment", "make_grid4",
450
+ "New alignment flags allow for the positioning of items in any corner or centered " +
451
+ "position."
452
+ ],
453
+
454
+ ["", nil, ""],
455
+
456
+ ["Proportional resize", "make_simple_box_shaped",
457
+ "Managed items can preserve their original aspect ratio. The last item has the " +
458
+ "wxSHAPED flag set and will resize proportional to its original size."
459
+ ],
460
+
461
+ ["Proportional resize with Alignments", "make_shapes",
462
+ "This one shows various alignments as well as proportional resizing for all items."
463
+ ],
464
+
465
+ ]
466
+ #----------------------------------------------------------------------
467
+
468
+ class TestFrame < Wx::Frame
469
+ def initialize(parent, title, sizerFunc)
470
+ super(parent, -1, title)
471
+ evt_button(1010) {|event| on_button(event)}
472
+
473
+ method = Object.method(sizerFunc)
474
+ @sizer = method.call(self)
475
+ create_status_bar()
476
+ set_status_text("Resize this frame to see how the sizers respond...")
477
+ @sizer.fit(self)
478
+
479
+ set_sizer(@sizer)
480
+ evt_close {|event| on_close_window(event)}
481
+ end
482
+
483
+ def on_close_window(event)
484
+ make_modal(false)
485
+ destroy()
486
+ end
487
+
488
+ def on_button(event)
489
+ close(true)
490
+ end
491
+ end
492
+
493
+ class TestSelectionPanel < Wx::Panel
494
+ def initialize(parent, frame)
495
+ super(parent, -1)
496
+ @frame = frame
497
+
498
+ @list = Wx::ListBox.new(self, 401, Wx::Point.new(10,10), Wx::Size.new(175,150))
499
+ evt_listbox(401) {|event| on_select(event)}
500
+ evt_listbox_dclick(401) {|event| on_d_click(event)}
501
+
502
+ @btn = Wx::Button.new(self, 402, "Try it!", Wx::Point.new(200, 10))
503
+ evt_button(402) {|event| on_d_click(event)}
504
+
505
+ @text = Wx::TextCtrl.new(self, -1, "", Wx::Point.new(10, 175), Wx::Size.new(350,75), Wx::TE_MULTILINE | Wx::TE_READONLY)
506
+
507
+ $theTests.each {|item| @list.append(item[0])}
508
+ @list.select(0)
509
+ end
510
+
511
+ def on_select(event)
512
+ pos = @list.get_selection()
513
+ @text.set_value($theTests[pos][2])
514
+ end
515
+
516
+ def on_d_click(event)
517
+ pos = @list.get_selection()
518
+ title = $theTests[pos][0]
519
+ func = $theTests[pos][1]
520
+
521
+ if func
522
+ win = TestFrame.new(self, title, func)
523
+ win.centre_on_parent(Wx::BOTH)
524
+ win.show()
525
+ win.make_modal(true)
526
+ end
527
+ end
528
+ end
529
+
530
+ module Demo
531
+ def Demo.run(frame,nb,log)
532
+ win = TestSelectionPanel.new(nb, frame)
533
+ return win
534
+ end
535
+
536
+ def Demo.overview
537
+ ""
538
+ end
539
+ end
540
+
541
+ if __FILE__ == $0
542
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
543
+ load run_solo_lib
544
+ run File.basename($0)
545
+ end