wxruby-ruby19 1.9.8-x86-darwin-9 → 1.9.10-x86-darwin-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx.rb +2 -2
  4. data/lib/wx/accessors.rb +7 -1
  5. data/lib/wx/classes/app.rb +10 -4
  6. data/lib/wx/classes/bitmap.rb +29 -1
  7. data/lib/wx/classes/clipboard.rb +19 -3
  8. data/lib/wx/classes/colour.rb +6 -4
  9. data/lib/wx/classes/data_object.rb +14 -0
  10. data/lib/wx/classes/data_object_simple.rb +6 -0
  11. data/lib/wx/classes/dataformat.rb +23 -0
  12. data/lib/wx/classes/evthandler.rb +79 -4
  13. data/lib/wx/classes/genericdirctrl.rb +36 -0
  14. data/lib/wx/classes/grid.rb +8 -0
  15. data/lib/wx/classes/hboxsizer.rb +6 -0
  16. data/lib/wx/classes/icon.rb +12 -1
  17. data/lib/wx/classes/image.rb +13 -1
  18. data/lib/wx/classes/listctrl.rb +12 -0
  19. data/lib/wx/classes/point.rb +8 -0
  20. data/lib/wx/classes/rect.rb +10 -1
  21. data/lib/wx/classes/richtextctrl.rb +63 -0
  22. data/lib/wx/classes/size.rb +9 -0
  23. data/lib/wx/classes/sizer.rb +18 -3
  24. data/lib/wx/classes/standardpaths.rb +9 -0
  25. data/lib/wx/classes/texturlevent.rb +14 -2
  26. data/lib/wx/classes/toolbar.rb +4 -6
  27. data/lib/wx/classes/vboxsizer.rb +6 -0
  28. data/lib/wx/classes/window.rb +7 -0
  29. data/lib/wx/classes/xmlresource.rb +17 -0
  30. data/lib/wx/helpers.rb +16 -1
  31. data/lib/wx/keyword_ctors.rb +3 -2
  32. data/lib/wx/keyword_defs.rb +56 -5
  33. data/lib/wx/version.rb +1 -1
  34. data/lib/wxruby2.bundle +0 -0
  35. data/samples/SAMPLES-LICENSE.TXT +18 -0
  36. data/samples/aui/aui.rb +1356 -0
  37. data/samples/bigdemo/About.rbw +39 -0
  38. data/samples/bigdemo/ColorPanel.rbw +23 -0
  39. data/samples/bigdemo/GridSimple.rbw +78 -0
  40. data/samples/bigdemo/MDIDemo.rbw +57 -0
  41. data/samples/bigdemo/PopupMenu.rbw +149 -0
  42. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  43. data/samples/bigdemo/Sizers.rbw +543 -0
  44. data/samples/bigdemo/bigdemo.rb +823 -0
  45. data/samples/bigdemo/demoTemplate.rbw +33 -0
  46. data/samples/bigdemo/helpfile.htb +0 -0
  47. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  48. data/samples/bigdemo/icons/Test 015.png +0 -0
  49. data/samples/bigdemo/icons/choice.bmp +0 -0
  50. data/samples/bigdemo/icons/choice.xpm +27 -0
  51. data/samples/bigdemo/icons/combo.bmp +0 -0
  52. data/samples/bigdemo/icons/combo.xpm +27 -0
  53. data/samples/bigdemo/icons/copy.xpm +25 -0
  54. data/samples/bigdemo/icons/cut.xpm +24 -0
  55. data/samples/bigdemo/icons/gauge.bmp +0 -0
  56. data/samples/bigdemo/icons/gauge.xpm +27 -0
  57. data/samples/bigdemo/icons/help.xpm +25 -0
  58. data/samples/bigdemo/icons/list.bmp +0 -0
  59. data/samples/bigdemo/icons/list.xpm +27 -0
  60. data/samples/bigdemo/icons/mondrian.ico +0 -0
  61. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  62. data/samples/bigdemo/icons/new.xpm +24 -0
  63. data/samples/bigdemo/icons/ogl.ico +0 -0
  64. data/samples/bigdemo/icons/ogl.xpm +45 -0
  65. data/samples/bigdemo/icons/open.xpm +26 -0
  66. data/samples/bigdemo/icons/paste.bmp +0 -0
  67. data/samples/bigdemo/icons/paste.xpm +38 -0
  68. data/samples/bigdemo/icons/pointy.png +0 -0
  69. data/samples/bigdemo/icons/preview.xpm +26 -0
  70. data/samples/bigdemo/icons/print.xpm +26 -0
  71. data/samples/bigdemo/icons/radio.bmp +0 -0
  72. data/samples/bigdemo/icons/radio.xpm +27 -0
  73. data/samples/bigdemo/icons/robert.xpm +415 -0
  74. data/samples/bigdemo/icons/ruby.png +0 -0
  75. data/samples/bigdemo/icons/sashtest.ico +0 -0
  76. data/samples/bigdemo/icons/save.xpm +25 -0
  77. data/samples/bigdemo/icons/smiles.bmp +0 -0
  78. data/samples/bigdemo/icons/smiles.xpm +39 -0
  79. data/samples/bigdemo/icons/smiley.ico +0 -0
  80. data/samples/bigdemo/icons/smiley.xpm +42 -0
  81. data/samples/bigdemo/icons/stattext.xpm +24 -0
  82. data/samples/bigdemo/icons/test2.bmp +0 -0
  83. data/samples/bigdemo/icons/test2.png +0 -0
  84. data/samples/bigdemo/icons/test2.xpm +79 -0
  85. data/samples/bigdemo/icons/text.bmp +0 -0
  86. data/samples/bigdemo/icons/text.xpm +27 -0
  87. data/samples/bigdemo/icons/tog1.bmp +0 -0
  88. data/samples/bigdemo/icons/tog1.xpm +38 -0
  89. data/samples/bigdemo/icons/tog2.bmp +0 -0
  90. data/samples/bigdemo/icons/tog2.xpm +38 -0
  91. data/samples/bigdemo/icons/wxwin.ico +0 -0
  92. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  93. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  94. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  95. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  96. data/samples/bigdemo/run.rb +90 -0
  97. data/samples/bigdemo/tips.txt +7 -0
  98. data/samples/bigdemo/utils.rb +12 -0
  99. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  100. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  101. data/samples/bigdemo/wxButton.rbw +64 -0
  102. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  103. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  104. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  105. data/samples/bigdemo/wxChoice.rbw +47 -0
  106. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  107. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  108. data/samples/bigdemo/wxComboBox.rbw +77 -0
  109. data/samples/bigdemo/wxCursor.rbw +136 -0
  110. data/samples/bigdemo/wxDialog.rbw +74 -0
  111. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  112. data/samples/bigdemo/wxDragImage.rbw +70 -0
  113. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  114. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  115. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  116. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  117. data/samples/bigdemo/wxFrame.rbw +53 -0
  118. data/samples/bigdemo/wxGauge.rbw +71 -0
  119. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  120. data/samples/bigdemo/wxGrid.rbw +66 -0
  121. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  122. data/samples/bigdemo/wxListBox.rbw +140 -0
  123. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  124. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  125. data/samples/bigdemo/wxMenu.rbw +236 -0
  126. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  127. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  128. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  129. data/samples/bigdemo/wxNotebook.rbw +136 -0
  130. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  131. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  132. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  133. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  134. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  135. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  136. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  137. data/samples/bigdemo/wxSlider.rbw +42 -0
  138. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  139. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  140. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  141. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  142. data/samples/bigdemo/wxStaticText.rbw +55 -0
  143. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  144. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  145. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  146. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  147. data/samples/bigdemo/wxToolBar.rbw +131 -0
  148. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  149. data/samples/calendar/calendar.rb +256 -0
  150. data/samples/caret/caret.rb +282 -0
  151. data/samples/caret/mondrian.xpm +44 -0
  152. data/samples/controls/controls.rb +1136 -0
  153. data/samples/controls/get_item_sample.rb +87 -0
  154. data/samples/controls/icons/choice.xpm +27 -0
  155. data/samples/controls/icons/combo.xpm +27 -0
  156. data/samples/controls/icons/gauge.xpm +27 -0
  157. data/samples/controls/icons/list.xpm +27 -0
  158. data/samples/controls/icons/radio.xpm +27 -0
  159. data/samples/controls/icons/stattext.xpm +24 -0
  160. data/samples/controls/icons/text.xpm +27 -0
  161. data/samples/controls/mondrian.ico +0 -0
  162. data/samples/controls/mondrian.xpm +44 -0
  163. data/samples/controls/test2.bmp +0 -0
  164. data/samples/dialogs/dialogs.rb +797 -0
  165. data/samples/dialogs/tips.txt +18 -0
  166. data/samples/dragdrop/dragdrop.rb +177 -0
  167. data/samples/drawing/graphics_drawing.rb +235 -0
  168. data/samples/drawing/images.rb +37 -0
  169. data/samples/drawing/paperclip.png +0 -0
  170. data/samples/etc/activation.rb +102 -0
  171. data/samples/etc/choice.rb +67 -0
  172. data/samples/etc/miniframe.rb +79 -0
  173. data/samples/etc/sash.rb +130 -0
  174. data/samples/etc/scrollwin.rb +110 -0
  175. data/samples/etc/system_settings.rb +252 -0
  176. data/samples/etc/threaded.rb +72 -0
  177. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  178. data/samples/etc/wizard.rb +74 -0
  179. data/samples/event/event.rb +182 -0
  180. data/samples/event/update_ui_event.rb +70 -0
  181. data/samples/grid/grid.rb +198 -0
  182. data/samples/grid/gridtablebase.rb +148 -0
  183. data/samples/html/html.rb +262 -0
  184. data/samples/listbook/listbook.rb +174 -0
  185. data/samples/listbook/listbook.xrc +370 -0
  186. data/samples/mdi/mdi.rb +85 -0
  187. data/samples/media/mediactrl.rb +167 -0
  188. data/samples/minimal/minimal.rb +77 -0
  189. data/samples/minimal/mondrian.ico +0 -0
  190. data/samples/minimal/mondrian.png +0 -0
  191. data/samples/minimal/nothing.rb +16 -0
  192. data/samples/opengl/cube.rb +117 -0
  193. data/samples/printing/mondrian.ico +0 -0
  194. data/samples/printing/mondrian.xpm +44 -0
  195. data/samples/printing/printing.rb +487 -0
  196. data/samples/sockets/SocketPackets.rb +27 -0
  197. data/samples/sockets/res/message-new.png +0 -0
  198. data/samples/sockets/res/user.png +0 -0
  199. data/samples/sockets/wxClient.rb +395 -0
  200. data/samples/sockets/wxServer.rb +422 -0
  201. data/samples/sockets/wxSocketGUI.rb +97 -0
  202. data/samples/text/format-text-bold.png +0 -0
  203. data/samples/text/format-text-italic.png +0 -0
  204. data/samples/text/format-text-underline.png +0 -0
  205. data/samples/text/mondrian.ico +0 -0
  206. data/samples/text/mondrian.xpm +44 -0
  207. data/samples/text/rich_textctrl.rb +98 -0
  208. data/samples/text/scintilla.rb +169 -0
  209. data/samples/text/textctrl.rb +111 -0
  210. data/samples/text/unicode.rb +242 -0
  211. data/samples/text/utf8.txt +15 -0
  212. data/samples/treectrl/icon1.xpm +79 -0
  213. data/samples/treectrl/icon2.xpm +53 -0
  214. data/samples/treectrl/icon3.xpm +79 -0
  215. data/samples/treectrl/icon4.xpm +43 -0
  216. data/samples/treectrl/icon5.xpm +79 -0
  217. data/samples/treectrl/treectrl.rb +1166 -0
  218. data/samples/xrc/samples.xrc +46 -0
  219. data/samples/xrc/xrc_sample.rb +76 -0
  220. metadata +17 -3
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+ include Wx
12
+
13
+ class MyFrame < Frame
14
+ def initialize
15
+ super(nil, -1, "Wx::Frame demonstration",
16
+ DEFAULT_POSITION, Size.new(350,200), DEFAULT_FRAME_STYLE)
17
+ panel = Panel.new(self, -1)
18
+
19
+ button = Button.new(panel, -1, "Close me", Point.new(15,15))
20
+ evt_button( button.get_id ) { on_close_me }
21
+ evt_close { | e | on_close_window(e) }
22
+ end
23
+
24
+ def on_close_me
25
+ close(true)
26
+ end
27
+
28
+ def on_close_window(event)
29
+
30
+ event.skip
31
+ end
32
+ end
33
+
34
+ module Demo
35
+ def Demo.run(frame, nb, log)
36
+ win = MyFrame.new
37
+ frame.otherWin = win
38
+ win.center_on_parent(Wx::BOTH)
39
+ win.show(true)
40
+ end
41
+
42
+ def Demo.overview
43
+ return "This is the wxFrame Overview!"
44
+
45
+ end
46
+ end
47
+
48
+
49
+ if __FILE__ == $0
50
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
51
+ load run_solo_lib
52
+ run File.basename($0)
53
+ end
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ class TestPanel < Wx::Panel
13
+ def initialize(parent, log)
14
+ super(parent, -1)
15
+ @log = log
16
+ @count = 0
17
+
18
+ Wx::StaticText.new( self, -1, "This example shows the wxGauge control.",
19
+ Wx::Point.new(45,15))
20
+
21
+ @g1 = Wx::Gauge.new( self, -1, 50,
22
+ Wx::Point.new(110,50), Wx::Size.new(250,25))
23
+ @g1.set_bezel_face(3)
24
+ @g1.set_shadow_width(3)
25
+
26
+ @g2 = Wx::Gauge.new( self, -1, 50,
27
+ Wx::Point.new(110,95), Wx::Size.new(250,25),
28
+ Wx::GA_HORIZONTAL|Wx::GA_SMOOTH)
29
+ @g2.set_bezel_face(5)
30
+ @g2.set_shadow_width(5)
31
+
32
+ @g3 = Wx::Gauge.new( self, -1, 50,
33
+ Wx::Point.new(110, 140), Wx::Size.new(25,250),
34
+ Wx::GA_VERTICAL)
35
+ @g3.set_bezel_face(3)
36
+ @g3.set_shadow_width(3)
37
+
38
+ # start a timer to move the gauges forward every 1/4 s
39
+ timer = Wx::Timer.new(self, 5001)
40
+ evt_timer(5001) { move_gauges }
41
+ timer.start(250)
42
+ end
43
+
44
+ # advance the gauges
45
+ def move_gauges
46
+ @count +=1
47
+ if @count > 50
48
+ @count = 0
49
+ end
50
+ @g1.set_value(@count)
51
+ @g2.set_value(@count)
52
+ @g3.set_value(@count)
53
+ end
54
+ end
55
+
56
+ module Demo
57
+ def Demo.run(frame, nb, log)
58
+ win = TestPanel.new(nb, log)
59
+ return win
60
+ end
61
+
62
+ def Demo.overview
63
+ return "A gauge is a horizontal or vertical bar which shows a quantity (often time). "
64
+ end
65
+ end
66
+
67
+ if __FILE__ == $0
68
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
69
+ load run_solo_lib
70
+ run File.basename($0)
71
+ end
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ class TestPanel < Wx::Panel
13
+ def initialize(parent, log)
14
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
15
+ @log = log
16
+
17
+ txt1 = Wx::StaticText.new(self, -1, "style=0")
18
+ dir1 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), 0)
19
+
20
+ txt2 = Wx::StaticText.new(self, -1, "Wx::DIRCTRL_DIR_ONLY")
21
+ dir2 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), Wx::DIRCTRL_DIR_ONLY)
22
+
23
+ txt3 = Wx::StaticText.new(self, -1, "Wx::DIRCTRL_SHOW_FILTERS")
24
+ dir3 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), Wx::DIRCTRL_SHOW_FILTERS,
25
+ "All files (*.*)|*.*|Ruby files (*.rb)|*.rb")
26
+
27
+ sz = Wx::FlexGridSizer.new(3, 5, 5)
28
+ sz.add(35, 35) # some space above
29
+ sz.add(35, 35)
30
+ sz.add(35, 35)
31
+
32
+ sz.add(txt1)
33
+ sz.add(txt2)
34
+ sz.add(txt3)
35
+
36
+ sz.add(dir1, 0, Wx::EXPAND)
37
+ sz.add(dir2, 0, Wx::EXPAND)
38
+ sz.add(dir3, 0, Wx::EXPAND)
39
+
40
+ sz.add(35,35) # some space below
41
+
42
+ sz.add_growable_row(2)
43
+ sz.add_growable_col(0)
44
+ sz.add_growable_col(1)
45
+ sz.add_growable_col(2)
46
+
47
+ set_sizer(sz)
48
+ set_auto_layout(true)
49
+ end
50
+ end
51
+
52
+ module Demo
53
+
54
+ def Demo.run(frame, nb, log)
55
+ win = TestPanel.new(nb, log)
56
+ return win
57
+ end
58
+
59
+ def Demo.overview
60
+ return <<EOS
61
+ This control can be used to place a directory listing (with optional files)
62
+ on an arbitrary window. The control contains a TreeCtrl window representing
63
+ the directory hierarchy, and optionally, a Choice window containing a list
64
+ of filters.
65
+ EOS
66
+ end
67
+
68
+ end
69
+
70
+ if __FILE__ == $0
71
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
72
+ load run_solo_lib
73
+ run File.basename($0)
74
+ end
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ $buttonDefs = {
13
+ 814 => ['GridSimple', ' Simple wxGrid'] # , catching all events '] ,
14
+ # 815 => ['GridStdEdRend', ' wxGrid showing Editors and Renderers '],
15
+ # 818 => ['GridHugeTable', ' A wxGrid with a HUGE table [100 MILLION cells!] '],
16
+ # 817 => ['GridCustTable', ' wxGrid using a custom Table, with non-string data '],
17
+ # 819 => ['GridEnterHandler',' Remapping keys to behave differently '],
18
+ # 820 => ['GridCustEditor', ' Shows how to create a custom Cell Editor '],
19
+ # 821 => ['GridDragable', ' A wxGrid with dragable rows and columns '],
20
+ # 822 => ['GridDragAndDrop', 'Shows how to make a grid a drop target for files'],
21
+ }
22
+
23
+ class ButtonPanel < Wx::Panel
24
+ def initialize(parent, log)
25
+ super(parent, -1)
26
+ @log = log
27
+
28
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
29
+ box.add(20,30)
30
+ keys = $buttonDefs.keys().sort()
31
+ keys.each do |key|
32
+ text = $buttonDefs[key][1]
33
+ btn = Wx::Button.new(self, key, text)
34
+ box.add(btn, 0, Wx::ALIGN_CENTER | Wx::ALL, 10)
35
+ evt_button(key) {|event| on_button(event)}
36
+ end
37
+ set_sizer(box)
38
+ end
39
+
40
+ def on_button(event)
41
+ modName = $buttonDefs[event.get_id()][0]
42
+ mod_file = File.join(File.dirname(__FILE__), modName + ".rbw")
43
+ load mod_file
44
+
45
+ frame = GridDemo::TestFrame.new(nil, @log)
46
+ frame.show()
47
+ end
48
+ end
49
+
50
+ module Demo
51
+ def Demo.run(frame,nb,log)
52
+ win = ButtonPanel.new(nb, log)
53
+ return win
54
+ end
55
+
56
+ def Demo.overview
57
+ "A simple grid."
58
+ end
59
+ end
60
+
61
+
62
+ if __FILE__ == $0
63
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
64
+ load run_solo_lib
65
+ run File.basename($0)
66
+ end
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+
13
+ class TestPanel < Wx::Panel
14
+ def initialize(parent, log)
15
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
16
+ Wx::NO_FULL_REPAINT_ON_RESIZE)
17
+ @log = log
18
+
19
+ b = Wx::Button.new(self, -1, 'Give me some help!',
20
+ Wx::Point.new(50,50))
21
+
22
+ evt_button(b.get_id) { on_button }
23
+ end
24
+
25
+ def on_button
26
+ help = Wx::HtmlHelpController.instance
27
+ help_file = File.join( File.dirname(__FILE__), 'helpfile.htb')
28
+ exit if not File.exists?(help_file)
29
+ help.add_book( File.expand_path(help_file), false )
30
+ help.display_contents
31
+ end
32
+ end
33
+
34
+ module Demo
35
+ def Demo.run(frame, nb, log)
36
+ TestPanel.new(nb, log)
37
+ end
38
+
39
+ def Demo.overview
40
+ "Wx::HtmlHelpController is a sophisticated viewer for online help\n" +
41
+ "documentation in HTML format. It uses a format based on the Microsoft\n" +
42
+ "HTML Help format, but is available on all platforms. It includes a\n" +
43
+ "contents page, index and keyword search."
44
+ end
45
+ end
46
+
47
+
48
+ if __FILE__ == $0
49
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
50
+ load run_solo_lib
51
+ run File.basename($0)
52
+ end
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2008 wxRuby development team
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+ begin
5
+ require 'rubygems'
6
+ rescue LoadError
7
+ end
8
+ require 'wx'
9
+
10
+
11
+
12
+ class FindPrefixListBox < Wx::ListBox
13
+ def initialize(parent, id, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, choices=[], style=0)
14
+ super(parent, id, pos, size, choices, style)
15
+ @typedText = ""
16
+ @log = parent.log
17
+ evt_key_down {|event| on_key(event)}
18
+ end
19
+
20
+ def find_prefix(prefix)
21
+ @log.write_text("Looking for prefix: " + prefix.to_s)
22
+ if prefix
23
+ prefix.downcase!
24
+ length = prefix.length
25
+ 0.upto(get_count) do |x|
26
+ text = get_string(x).to_s.downcase
27
+ if text[0,length] == prefix
28
+ @log.write_text("Prefix " + prefix + " is found.")
29
+ return x
30
+ end
31
+ end
32
+ end
33
+ @log.write_text("Prefix " + prefix + " is not found.")
34
+ return -1
35
+ end
36
+
37
+ def on_key(event)
38
+ key = event.get_key_code
39
+ if key >= 32 and key <= 127
40
+ @typedText += key.chr
41
+ item = find_prefix(@typedText)
42
+ if item != -1
43
+ set_selection(item)
44
+ end
45
+ elsif key == Wx::K_BACK # backspace removes one character and backs up
46
+ @typedText = @typedText[0..-2]
47
+ if not @typedText
48
+ set_selection(0)
49
+ else
50
+ item = find_prefix(@typedText)
51
+ if item != -1
52
+ set_selection(item)
53
+ end
54
+ end
55
+
56
+ else
57
+ @typedText = ""
58
+ event.skip
59
+ end
60
+ end
61
+
62
+ def on_key_down(event)
63
+
64
+ end
65
+ end
66
+
67
+ class TestListBox < Wx::Panel
68
+ attr_reader :log
69
+ def initialize(parent, log)
70
+ @log = log
71
+ super(parent, -1)
72
+
73
+ sampleList = %w(zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen)
74
+
75
+ Wx::StaticText.new(self, -1, "This example uses the wxListBox control.", Wx::Point.new(45,10))
76
+
77
+ Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50), Wx::Size.new(65,18))
78
+ @lb1 = Wx::ListBox.new(self, 60, Wx::Point.new(80,50), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
79
+ evt_listbox(@lb1.get_id) {|event| on_evt_listbox(event)}
80
+ evt_listbox_dclick(@lb1.get_id) {|event| on_evt_listbox_dclick(event)}
81
+ @lb1.set_selection(3)
82
+ @lb1.append("with data", "This one has data")
83
+ @lb1.set_client_data(2, "This one has data")
84
+
85
+ Wx::StaticText.new(self, -1, "Select many:", Wx::Point.new(200,50), Wx::Size.new(65,18))
86
+ @lb2 = Wx::ListBox.new(self, 70, Wx::Point.new(280,50), Wx::Size.new(80,120), sampleList, Wx::LB_EXTENDED)
87
+ evt_listbox(@lb2.get_id) {|event| on_evt_multi_listbox(event)}
88
+ @lb2.evt_right_up {|event| on_evt_right_button(event)}
89
+ @lb2.set_selection(0)
90
+
91
+ sampleList += ["test a", "test aa", "test aab", "test ab", "test abc", "test abcc", "test abcd"]
92
+ sampleList.sort!
93
+ Wx::StaticText.new(self, -1, "Find typed prefix:", Wx::Point.new(15,250))
94
+ fp = FindPrefixListBox.new(self, -1, Wx::Point.new(110,250), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
95
+ fp.set_selection(0)
96
+ end
97
+
98
+ def on_evt_listbox(event)
99
+ @log.write_text("evt_listbox: #{event.get_string}, #{event.is_selection}, #{event.get_selection}, #{event.get_client_data}")
100
+ end
101
+
102
+ def on_evt_listbox_dclick(event)
103
+ @log.write_text("evt_listbox_dclick: " + @lb1.get_selection.to_s)
104
+ @lb1.delete(@lb1.get_selection)
105
+ end
106
+
107
+ def on_evt_multi_listbox(event)
108
+ @log.write_text("evt_multi_listbox: (" +
109
+ @lb2.get_selections.join(',') + ")")
110
+ end
111
+
112
+ def on_evt_right_button(event)
113
+ @log.write_text("evt_right_button: " + event.get_position.to_s)
114
+ if event.get_event_object.get_id == 70
115
+ selections = @lb2.get_selections
116
+ selections.reverse!
117
+ selections.each do |index|
118
+ @lb2.delete(index)
119
+ end
120
+ end
121
+ end
122
+ end
123
+
124
+ module Demo
125
+ def Demo.run(frame,nb,log)
126
+ win = TestListBox.new(nb, log)
127
+ return win
128
+ end
129
+
130
+ def Demo.overview
131
+ "A listbox is used to select one or more of a list of strings. The strings are displayed in a scrolling box, with the selected string(s) marked in reverse video. A listbox can be single selection (if an item is selected, the previous selection is removed) or multiple selection (clicking an item toggles the item on or off independently of other selections)."
132
+ end
133
+ end
134
+
135
+
136
+ if __FILE__ == $0
137
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
138
+ load run_solo_lib
139
+ run File.basename($0)
140
+ end