wxruby 1.9.6-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx/accessors.rb +52 -0
  4. data/lib/wx/classes/acceleratortable.rb +28 -0
  5. data/lib/wx/classes/animation.rb +18 -0
  6. data/lib/wx/classes/app.rb +45 -0
  7. data/lib/wx/classes/artprovider.rb +31 -0
  8. data/lib/wx/classes/bitmap.rb +28 -0
  9. data/lib/wx/classes/busycursor.rb +12 -0
  10. data/lib/wx/classes/checklistbox.rb +45 -0
  11. data/lib/wx/classes/choice.rb +4 -0
  12. data/lib/wx/classes/clientdc.rb +13 -0
  13. data/lib/wx/classes/clipboard.rb +16 -0
  14. data/lib/wx/classes/colour.rb +47 -0
  15. data/lib/wx/classes/combobox.rb +4 -0
  16. data/lib/wx/classes/commandevent.rb +7 -0
  17. data/lib/wx/classes/controlwithitems.rb +10 -0
  18. data/lib/wx/classes/dc.rb +57 -0
  19. data/lib/wx/classes/event.rb +5 -0
  20. data/lib/wx/classes/evthandler.rb +921 -0
  21. data/lib/wx/classes/font.rb +118 -0
  22. data/lib/wx/classes/functions.rb +44 -0
  23. data/lib/wx/classes/gauge.rb +12 -0
  24. data/lib/wx/classes/grid.rb +138 -0
  25. data/lib/wx/classes/helpcontroller.rb +5 -0
  26. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  27. data/lib/wx/classes/htmlwindow.rb +14 -0
  28. data/lib/wx/classes/icon.rb +21 -0
  29. data/lib/wx/classes/iconbundle.rb +3 -0
  30. data/lib/wx/classes/image.rb +31 -0
  31. data/lib/wx/classes/imagelist.rb +3 -0
  32. data/lib/wx/classes/listbox.rb +4 -0
  33. data/lib/wx/classes/listctrl.rb +21 -0
  34. data/lib/wx/classes/locale.rb +28 -0
  35. data/lib/wx/classes/mediactrl.rb +22 -0
  36. data/lib/wx/classes/menu.rb +62 -0
  37. data/lib/wx/classes/menuitem.rb +7 -0
  38. data/lib/wx/classes/object.rb +7 -0
  39. data/lib/wx/classes/paintdc.rb +12 -0
  40. data/lib/wx/classes/point.rb +48 -0
  41. data/lib/wx/classes/previewframe.rb +13 -0
  42. data/lib/wx/classes/rect.rb +10 -0
  43. data/lib/wx/classes/size.rb +49 -0
  44. data/lib/wx/classes/sound.rb +23 -0
  45. data/lib/wx/classes/styledtextctrl.rb +92 -0
  46. data/lib/wx/classes/textctrl.rb +14 -0
  47. data/lib/wx/classes/texturlevent.rb +6 -0
  48. data/lib/wx/classes/timer.rb +94 -0
  49. data/lib/wx/classes/toolbartool.rb +4 -0
  50. data/lib/wx/classes/treectrl.rb +44 -0
  51. data/lib/wx/classes/window.rb +82 -0
  52. data/lib/wx/classes/xmlresource.rb +37 -0
  53. data/lib/wx/keyword_ctors.rb +222 -0
  54. data/lib/wx/keyword_defs.rb +492 -0
  55. data/lib/wx/version.rb +3 -0
  56. data/lib/wx.rb +42 -0
  57. data/lib/wxruby2.so +0 -0
  58. data/samples/SAMPLES-LICENSE.TXT +18 -0
  59. data/samples/aui/aui.rb +1356 -0
  60. data/samples/bigdemo/About.rbw +39 -0
  61. data/samples/bigdemo/ColorPanel.rbw +23 -0
  62. data/samples/bigdemo/GridSimple.rbw +78 -0
  63. data/samples/bigdemo/MDIDemo.rbw +57 -0
  64. data/samples/bigdemo/PopupMenu.rbw +149 -0
  65. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  66. data/samples/bigdemo/Sizers.rbw +543 -0
  67. data/samples/bigdemo/bigdemo.rb +823 -0
  68. data/samples/bigdemo/demoTemplate.rbw +33 -0
  69. data/samples/bigdemo/helpfile.htb +0 -0
  70. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  71. data/samples/bigdemo/icons/Test 015.png +0 -0
  72. data/samples/bigdemo/icons/choice.bmp +0 -0
  73. data/samples/bigdemo/icons/choice.xpm +27 -0
  74. data/samples/bigdemo/icons/combo.bmp +0 -0
  75. data/samples/bigdemo/icons/combo.xpm +27 -0
  76. data/samples/bigdemo/icons/copy.xpm +25 -0
  77. data/samples/bigdemo/icons/cut.xpm +24 -0
  78. data/samples/bigdemo/icons/gauge.bmp +0 -0
  79. data/samples/bigdemo/icons/gauge.xpm +27 -0
  80. data/samples/bigdemo/icons/help.xpm +25 -0
  81. data/samples/bigdemo/icons/list.bmp +0 -0
  82. data/samples/bigdemo/icons/list.xpm +27 -0
  83. data/samples/bigdemo/icons/mondrian.ico +0 -0
  84. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  85. data/samples/bigdemo/icons/new.xpm +24 -0
  86. data/samples/bigdemo/icons/ogl.ico +0 -0
  87. data/samples/bigdemo/icons/ogl.xpm +45 -0
  88. data/samples/bigdemo/icons/open.xpm +26 -0
  89. data/samples/bigdemo/icons/paste.bmp +0 -0
  90. data/samples/bigdemo/icons/paste.xpm +38 -0
  91. data/samples/bigdemo/icons/pointy.png +0 -0
  92. data/samples/bigdemo/icons/preview.xpm +26 -0
  93. data/samples/bigdemo/icons/print.xpm +26 -0
  94. data/samples/bigdemo/icons/radio.bmp +0 -0
  95. data/samples/bigdemo/icons/radio.xpm +27 -0
  96. data/samples/bigdemo/icons/robert.xpm +415 -0
  97. data/samples/bigdemo/icons/ruby.png +0 -0
  98. data/samples/bigdemo/icons/sashtest.ico +0 -0
  99. data/samples/bigdemo/icons/save.xpm +25 -0
  100. data/samples/bigdemo/icons/smiles.bmp +0 -0
  101. data/samples/bigdemo/icons/smiles.xpm +39 -0
  102. data/samples/bigdemo/icons/smiley.ico +0 -0
  103. data/samples/bigdemo/icons/smiley.xpm +42 -0
  104. data/samples/bigdemo/icons/stattext.xpm +24 -0
  105. data/samples/bigdemo/icons/test2.bmp +0 -0
  106. data/samples/bigdemo/icons/test2.png +0 -0
  107. data/samples/bigdemo/icons/test2.xpm +79 -0
  108. data/samples/bigdemo/icons/text.bmp +0 -0
  109. data/samples/bigdemo/icons/text.xpm +27 -0
  110. data/samples/bigdemo/icons/tog1.bmp +0 -0
  111. data/samples/bigdemo/icons/tog1.xpm +38 -0
  112. data/samples/bigdemo/icons/tog2.bmp +0 -0
  113. data/samples/bigdemo/icons/tog2.xpm +38 -0
  114. data/samples/bigdemo/icons/wxwin.ico +0 -0
  115. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  116. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  117. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  118. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  119. data/samples/bigdemo/run.rb +90 -0
  120. data/samples/bigdemo/tips.txt +7 -0
  121. data/samples/bigdemo/utils.rb +12 -0
  122. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  123. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  124. data/samples/bigdemo/wxButton.rbw +64 -0
  125. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  126. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  127. data/samples/bigdemo/wxCheckListBox.rbw +75 -0
  128. data/samples/bigdemo/wxChoice.rbw +47 -0
  129. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  130. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  131. data/samples/bigdemo/wxComboBox.rbw +77 -0
  132. data/samples/bigdemo/wxCursor.rbw +136 -0
  133. data/samples/bigdemo/wxDialog.rbw +74 -0
  134. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  135. data/samples/bigdemo/wxDragImage.rbw +70 -0
  136. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  137. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  138. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  139. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  140. data/samples/bigdemo/wxFrame.rbw +53 -0
  141. data/samples/bigdemo/wxGauge.rbw +71 -0
  142. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  143. data/samples/bigdemo/wxGrid.rbw +66 -0
  144. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  145. data/samples/bigdemo/wxListBox.rbw +140 -0
  146. data/samples/bigdemo/wxListCtrl_virtual.rbw +107 -0
  147. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  148. data/samples/bigdemo/wxMenu.rbw +236 -0
  149. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  150. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  151. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  152. data/samples/bigdemo/wxNotebook.rbw +136 -0
  153. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  154. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  155. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  156. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  157. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  158. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  159. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  160. data/samples/bigdemo/wxSlider.rbw +42 -0
  161. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  162. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  163. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  164. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  165. data/samples/bigdemo/wxStaticText.rbw +55 -0
  166. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  167. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  168. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  169. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  170. data/samples/bigdemo/wxToolBar.rbw +131 -0
  171. data/samples/bigdemo/wxTreeCtrl.rbw +190 -0
  172. data/samples/calendar/calendar.rb +271 -0
  173. data/samples/caret/caret.rb +282 -0
  174. data/samples/caret/mondrian.xpm +44 -0
  175. data/samples/controls/controls.rb +1136 -0
  176. data/samples/controls/get_item_sample.rb +87 -0
  177. data/samples/controls/icons/choice.xpm +27 -0
  178. data/samples/controls/icons/combo.xpm +27 -0
  179. data/samples/controls/icons/gauge.xpm +27 -0
  180. data/samples/controls/icons/list.xpm +27 -0
  181. data/samples/controls/icons/radio.xpm +27 -0
  182. data/samples/controls/icons/stattext.xpm +24 -0
  183. data/samples/controls/icons/text.xpm +27 -0
  184. data/samples/controls/mondrian.ico +0 -0
  185. data/samples/controls/mondrian.xpm +44 -0
  186. data/samples/controls/test2.bmp +0 -0
  187. data/samples/dialogs/dialogs.rb +723 -0
  188. data/samples/dialogs/tips.txt +18 -0
  189. data/samples/drawing/graphics_drawing.rb +235 -0
  190. data/samples/drawing/images.rb +37 -0
  191. data/samples/drawing/paperclip.png +0 -0
  192. data/samples/etc/activation.rb +102 -0
  193. data/samples/etc/choice.rb +67 -0
  194. data/samples/etc/miniframe.rb +79 -0
  195. data/samples/etc/sash.rb +130 -0
  196. data/samples/etc/scrollwin.rb +110 -0
  197. data/samples/etc/system_settings.rb +252 -0
  198. data/samples/etc/threaded.rb +72 -0
  199. data/samples/etc/wizard.rb +74 -0
  200. data/samples/event/event.rb +182 -0
  201. data/samples/grid/grid.rb +198 -0
  202. data/samples/grid/gridtablebase.rb +134 -0
  203. data/samples/html/html.rb +262 -0
  204. data/samples/listbook/listbook.rb +174 -0
  205. data/samples/listbook/listbook.xrc +370 -0
  206. data/samples/mdi/mdi.rb +82 -0
  207. data/samples/media/mediactrl.rb +167 -0
  208. data/samples/minimal/minimal.rb +77 -0
  209. data/samples/minimal/mondrian.ico +0 -0
  210. data/samples/minimal/mondrian.png +0 -0
  211. data/samples/minimal/nothing.rb +16 -0
  212. data/samples/opengl/cube.rb +117 -0
  213. data/samples/printing/mondrian.ico +0 -0
  214. data/samples/printing/mondrian.xpm +44 -0
  215. data/samples/printing/printing.rb +310 -0
  216. data/samples/sockets/SocketPackets.rb +27 -0
  217. data/samples/sockets/res/message-new.png +0 -0
  218. data/samples/sockets/res/user.png +0 -0
  219. data/samples/sockets/wxClient.rb +395 -0
  220. data/samples/sockets/wxServer.rb +422 -0
  221. data/samples/sockets/wxSocketGUI.rb +97 -0
  222. data/samples/text/mondrian.ico +0 -0
  223. data/samples/text/mondrian.xpm +44 -0
  224. data/samples/text/scintilla.rb +169 -0
  225. data/samples/text/textctrl.rb +113 -0
  226. data/samples/text/unicode.rb +242 -0
  227. data/samples/text/utf8.txt +15 -0
  228. data/samples/treectrl/icon1.xpm +79 -0
  229. data/samples/treectrl/icon2.xpm +53 -0
  230. data/samples/treectrl/icon3.xpm +79 -0
  231. data/samples/treectrl/icon4.xpm +43 -0
  232. data/samples/treectrl/icon5.xpm +79 -0
  233. data/samples/treectrl/treectrl.rb +1174 -0
  234. data/samples/xrc/samples.xrc +46 -0
  235. data/samples/xrc/xrc_sample.rb +96 -0
  236. metadata +313 -0
@@ -0,0 +1,50 @@
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 uses the wxSpinButton control.", Wx::Point.new(45,15))
19
+
20
+ @text = Wx::TextCtrl.new(self, -1, "1", Wx::Point.new(30,50), Wx::Size.new(60,-1))
21
+ h = @text.get_size().get_height()
22
+ @spin = Wx::SpinButton.new(self, 20, Wx::Point.new(92,50), Wx::Size.new(h,h), Wx::SP_VERTICAL)
23
+ @spin.set_range(1, 100)
24
+ @spin.set_value(1)
25
+
26
+ evt_spin(@spin.get_id()) {|event| on_spin(event)}
27
+ end
28
+
29
+ def on_spin(event)
30
+ @text.set_value(event.get_position().to_s())
31
+ end
32
+ end
33
+
34
+ module Demo
35
+ def Demo.run(frame,nb,log)
36
+ win = TestPanel.new(nb, log)
37
+ return win
38
+ end
39
+
40
+ def Demo.overview
41
+ "A wxSpinButton has two small up and down (or left and right) arrow buttons. It is often used next to a text control for increment and decrementing a value. Portable programs should try to use wxSpinCtrl instead as wxSpinButton is not implemented for all platforms (Win32 and GTK only currently)."
42
+ end
43
+ end
44
+
45
+
46
+ if __FILE__ == $0
47
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
48
+ load run_solo_lib
49
+ run File.basename($0)
50
+ end
@@ -0,0 +1,51 @@
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,
19
+ "This example uses the Wx::SpinCtrl control.",
20
+ Wx::Point.new(45,15))
21
+
22
+ sc = Wx::SpinCtrl.new(self, -1, "",
23
+ Wx::Point.new(30, 50), Wx::Size.new(80, -1))
24
+ sc.set_range(1,100)
25
+ sc.set_value(5)
26
+ evt_spinctrl(sc.get_id) { | e | on_spinctrl(e) }
27
+ # sc.enable(false)
28
+ end
29
+
30
+ def on_spinctrl(evt)
31
+ @log.write_text("spintctrl - new position #{evt.get_position}")
32
+ end
33
+ end
34
+
35
+ module Demo
36
+ def Demo.run(frame,nb,log)
37
+ win = TestPanel.new(nb, log)
38
+ return win
39
+ end
40
+
41
+ def Demo.overview
42
+ "Wx::SpinCtrl combines Wx::TextCtrl and Wx::SpinButton in one control."
43
+ end
44
+ end
45
+
46
+
47
+ if __FILE__ == $0
48
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
49
+ load run_solo_lib
50
+ run File.basename($0)
51
+ end
@@ -0,0 +1,63 @@
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 MySplitter < Wx::SplitterWindow
13
+ def initialize(parent, id, log)
14
+ super(parent, id)
15
+ @log = log
16
+
17
+ evt_splitter_sash_pos_changed(self.get_id()) {|event| on_sash_changed(event)}
18
+ evt_splitter_sash_pos_changing(self.get_id()) {|event| on_sash_changing(event)}
19
+ end
20
+
21
+ def on_sash_changed(event)
22
+ @log.write_text("sash changed to: " + event.get_sash_position().to_s())
23
+ # uncomment this to not allow the change
24
+ #evt.set_sash_position(-1)
25
+ end
26
+
27
+ def on_sash_changing(event)
28
+ @log.write_text("sash changing to: " + event.get_sash_position().to_s())
29
+ # uncomment this to not allow the change
30
+ #evt.set_sash_position(-1)
31
+
32
+ end
33
+ end
34
+
35
+ module Demo
36
+ def Demo.run(frame,nb,log)
37
+ splitter = MySplitter.new(nb, -1, log)
38
+
39
+ p1 = Wx::Window.new(splitter, -1)
40
+ p1.set_background_colour(Wx::RED)
41
+ Wx::StaticText.new(p1, -1, "Panel One", Wx::Point.new(5,5)).set_background_colour(Wx::RED)
42
+
43
+ p2 = Wx::Window.new(splitter, -1)
44
+ p2.set_background_colour(Wx::BLUE)
45
+ Wx::StaticText.new(p2, -1, "Panel Two", Wx::Point.new(5,5)).set_background_colour(Wx::BLUE)
46
+
47
+ splitter.set_minimum_pane_size(20)
48
+ splitter.split_vertically(p1, p2, 100)
49
+
50
+ return splitter
51
+ end
52
+
53
+ def Demo.overview
54
+ "This class manages up to two subwindows. The current view can be split into two programmatically (perhaps from a menu command), and unsplit either programmatically or via the wxSplitterWindow user interface."
55
+ end
56
+ end
57
+
58
+
59
+ if __FILE__ == $0
60
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
61
+ load run_solo_lib
62
+ run File.basename($0)
63
+ end
@@ -0,0 +1,51 @@
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
+
16
+ Wx::StaticText.new( self, -1, "This is a wxStaticBitmap.",
17
+ Wx::Point.new(45,5))
18
+
19
+ bmp_file1 = File.join(File.dirname(__FILE__), 'icons', 'test2.xpm')
20
+ Wx::StaticBitmap.new( self, -1,
21
+ Wx::Bitmap.new(bmp_file1, Wx::BITMAP_TYPE_XPM),
22
+ Wx::Point.new(80,25))
23
+
24
+ bmp_file2 = File.join(File.dirname(__FILE__), 'icons', 'robert.xpm')
25
+ Wx::StaticBitmap.new( self, -1,
26
+ Wx::Bitmap.new(bmp_file2, Wx::BITMAP_TYPE_XPM),
27
+ Wx::Point.new(0, 100))
28
+
29
+ Wx::StaticText.new( self, -1,
30
+ "Hey, if Ousterhout (and Dunn) can do it, so can I.",
31
+ Wx::Point.new(100, 125) )
32
+ end
33
+ end
34
+
35
+ module Demo
36
+ def Demo.run(frame,nb,log)
37
+ win = TestPanel.new(nb, log)
38
+ return win
39
+ end
40
+
41
+ def Demo.overview
42
+ ""
43
+ end
44
+ end
45
+
46
+
47
+ if __FILE__ == $0
48
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
49
+ load run_solo_lib
50
+ run File.basename($0)
51
+ end
@@ -0,0 +1,55 @@
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)
14
+ super(parent, -1)
15
+
16
+ Wx::StaticText.new(self, -1, "This is an example of static text", Wx::Point.new(20, 10))
17
+
18
+ Wx::StaticText.new(self, -1, "using the Wx::StaticText Control.", Wx::Point.new(20, 30))
19
+
20
+ Wx::StaticText.new(self, -1, "Is this blue?", Wx::Point.new(20, 70), Wx::Size.new(90, -1)).set_background_colour(Wx::BLUE)
21
+
22
+ Wx::StaticText.new(self, -1, "align center", Wx::Point.new(120, 70), Wx::Size.new(90, -1), Wx::ALIGN_CENTER).set_background_colour(Wx::BLUE)
23
+
24
+ Wx::StaticText.new(self, -1, "align right", Wx::Point.new(220, 70), Wx::Size.new(90, -1), Wx::ALIGN_RIGHT).set_background_colour(Wx::BLUE)
25
+
26
+ str = "This is a different font."
27
+ text = Wx::StaticText.new(self, -1, str, Wx::Point.new(20, 100))
28
+ font = Wx::Font.new(18, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
29
+ text.set_font(font)
30
+ #text.set_size(text.get_best_size())
31
+
32
+ Wx::StaticText.new(self, -1, "Multi-line Wx::StaticText\nline 2\nline 3\n\nafter empty line", Wx::Point.new(20,150))
33
+ Wx::StaticText.new(self, -1, "Align right multi-line\nline 2\nline 3\n\nafter empty line", Wx::Point.new(220,150),
34
+ Wx::DEFAULT_SIZE,Wx::ALIGN_RIGHT)
35
+
36
+ end
37
+ end
38
+
39
+ module Demo
40
+ def Demo.run(frame,nb,log)
41
+ panel = TestPanel.new(nb)
42
+ return panel
43
+ end
44
+
45
+ def Demo.overview
46
+ "A static text control displays one or more lines of read-only text."
47
+ end
48
+ end
49
+
50
+
51
+ if __FILE__ == $0
52
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
53
+ load run_solo_lib
54
+ run File.basename($0)
55
+ end
@@ -0,0 +1,126 @@
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 CustomStatusBar < Wx::StatusBar
13
+ attr_reader :timer
14
+ def initialize(parent, log)
15
+ super(parent, -1)
16
+ set_fields_count(3)
17
+ @log = log
18
+ @sizeChanged = false
19
+
20
+ evt_size {|event| on_size(event)}
21
+ evt_idle {|event| on_idle(event)}
22
+
23
+ self.set_status_text("A Custom StatusBar...", 0)
24
+
25
+ @cb = Wx::CheckBox.new(self, 1001, "toggle clock")
26
+ evt_checkbox(@cb.get_id()) {|event| on_toggle_clock(event)}
27
+ @cb.set_value(true)
28
+
29
+ # set the initial position of the checkbox
30
+ self.reposition()
31
+
32
+ # start our timer
33
+ @timer = Wx::Timer.new(self, 5000)
34
+ # note that you cannot call @timer.get_id() - this method is not supported, therefore an explicit ID is required
35
+ # in order to capture the event for your event handler
36
+ evt_timer(5000) {|event| notify(event)}
37
+ # The second parameter is supposed to default to false (meaning it should fire off events continuously), but for
38
+ # some reason if I don't explicitly pass in false, it fires only once. If someone figures this out, please let
39
+ # me know :) What makes it even more confusing is that when I toggle the clock off using the checkbox, and then
40
+ # restart it, there is no need to pass in false for the second parameter - it is assumed to be false there
41
+ # To further complicate the situation, it appears that if I call stop(), call start(1000), it takes the parameter
42
+ # to default as false, meaning fire the event continuously? Perhaps this is a Windows only issue?
43
+ @timer.start(1000)
44
+ @timer.stop()
45
+ @timer.start(1000)
46
+ end
47
+
48
+ # Time-out handler
49
+ def notify(event)
50
+ t = Time.now
51
+ st = t.strftime("%d-%B-%Y %I:%M:%S %p")
52
+ self.set_status_text(st, 2)
53
+ @log.write_text("tick...")
54
+ end
55
+
56
+ # the checkbox was clicked
57
+ def on_toggle_clock(event)
58
+ if @cb.get_value()
59
+ @timer.start(1000)
60
+ else
61
+ @timer.stop()
62
+ end
63
+ end
64
+
65
+ def on_size(event)
66
+ self.reposition() # for normal size events
67
+
68
+ # Set a flag so the idle time handler will also do the repositioning.
69
+ # It is done this way to get around a buglet where GetFieldRect is not
70
+ # accurate during the EVT_SIZE resulting from a frame maximize.
71
+
72
+ @sizeChanged = true
73
+ end
74
+
75
+ def on_idle(event)
76
+ if @sizeChanged
77
+ self.reposition()
78
+ end
79
+ event.request_more()
80
+ end
81
+
82
+ def reposition()
83
+ rect = get_field_rect(1)
84
+ @cb.move(Wx::Point.new(rect.x + 2, rect.y + 2))
85
+ @cb.set_size(Wx::Size.new(rect.width - 4, rect.height - 4))
86
+ @sizeChanged = false
87
+ end
88
+ end
89
+
90
+ class TestCustomStatusBar < Wx::Frame
91
+ def initialize(parent, log)
92
+ super(parent, -1, "Test Custom StatusBar")
93
+
94
+ @sb = CustomStatusBar.new(self, log)
95
+ set_status_bar(@sb)
96
+ tc = Wx::TextCtrl.new(self, -1, "", Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::TE_READONLY | Wx::TE_MULTILINE)
97
+
98
+ set_size(Wx::Size.new(500,300))
99
+ evt_close {|event| on_close_window(event)}
100
+ end
101
+
102
+ def on_close_window(event)
103
+ @sb.timer.stop()
104
+ destroy()
105
+ end
106
+ end
107
+
108
+ module Demo
109
+ def Demo.run(frame,nb,log)
110
+ win = TestCustomStatusBar.new(frame, log)
111
+ frame.otherWin = win
112
+ win.show()
113
+ return nil
114
+ end
115
+
116
+ def Demo.overview
117
+ "A status bar is a narrow window that can be placed along the bottom of a frame to give small amounts of status information. It can contain one or more fields, one or more of which can be variable length according to the size of the window. "
118
+ end
119
+ end
120
+
121
+
122
+ if __FILE__ == $0
123
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
124
+ load run_solo_lib
125
+ run File.basename($0)
126
+ end
@@ -0,0 +1,149 @@
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
+
14
+ def on_set_focus(event)
15
+ @log.write_text("on_set_focus")
16
+ event.skip()
17
+ end
18
+
19
+ def on_kill_focus(event)
20
+ @log.write_text("on_kill_focus")
21
+ event.skip()
22
+ end
23
+
24
+ def on_window_destroy(event)
25
+ @log.write_text("on_window_destroy")
26
+ event.skip()
27
+ end
28
+
29
+ def initialize(parent, log)
30
+ super(parent, -1)
31
+ @log = log
32
+
33
+ l1 = Wx::StaticText.new(self, -1, "Wx::TextCtrl")
34
+ t1 = Wx::TextCtrl.new(self, -1, "Test it out and see", Wx::DEFAULT_POSITION, Wx::Size.new(125,-1))
35
+ t1.set_insertion_point(0)
36
+ @tc1 = t1
37
+ evt_text(t1.get_id()) {|event| on_evt_text(event)}
38
+ t1.evt_char {|event| on_evt_char(event)}
39
+ t1.evt_set_focus {|event| on_set_focus(event)}
40
+ t1.evt_kill_focus {|event| on_kill_focus(event)}
41
+ #t1.evt_window_destroy {|event| on_window_destroy(event)}
42
+
43
+ l2 = Wx::StaticText.new(self, -1, "Password")
44
+ t2 = Wx::TextCtrl.new(self, -1, "", Wx::DEFAULT_POSITION, Wx::Size.new(125,-1), Wx::TE_PASSWORD)
45
+ evt_text(t2.get_id()) {|event| on_evt_text(event)}
46
+
47
+ l3 = Wx::StaticText.new(self, -1, "Multi-line")
48
+ t3 = Wx::TextCtrl.new(self, -1, "Here is a looooooooooooooong line of text set in the control.\n\n" +
49
+ "The quick brown fox jumped over the lazy dog...", Wx::DEFAULT_POSITION, Wx::Size.new(200,100),
50
+ Wx::TE_MULTILINE)
51
+ t3.set_insertion_point(0)
52
+ evt_text(t3.get_id()) {|event| on_evt_text(event)}
53
+ b = Wx::Button.new(self, -1, "Test replace")
54
+ evt_button(b.get_id()) {|event| on_test_replace(event)}
55
+ b2 = Wx::Button.new(self, -1, "Test get_selection")
56
+ evt_button(b2.get_id()) {|event| on_test_get_selection(event)}
57
+ b3 = Wx::Button.new(self, -1, "Test write_text")
58
+ evt_button(b3.get_id()) {|event| on_test_write_text(event)}
59
+ @tc = t3
60
+
61
+ l4 = Wx::StaticText.new(self, -1, "Rich Text")
62
+ t4 = Wx::TextCtrl.new(self, -1, "If supported by the native control, this is red, and this is a different font.",
63
+ Wx::DEFAULT_POSITION, Wx::Size.new(200,100), Wx::TE_MULTILINE | Wx::TE_RICH)
64
+ t4.set_insertion_point(0)
65
+ t4.set_style(44,47, Wx::TextAttr.new(Wx::Colour.new("RED"), Wx::Colour.new("YELLOW")))
66
+ points = t4.get_font().get_point_size() # get the current size
67
+ f = Wx::Font.new(points + 3, Wx::ROMAN, Wx::ITALIC, Wx::BOLD, true)
68
+ t4.set_style(63, 77, Wx::TextAttr.new(Wx::Colour.new("BLUE"), Wx::NULL_COLOUR, f))
69
+
70
+ l5 = Wx::StaticText.new(self, -1, "Test Positions")
71
+ t5 = Wx::TextCtrl.new(self, -1, "0123456789\n" * 5, Wx::DEFAULT_POSITION, Wx::Size.new(200,100),
72
+ Wx::TE_MULTILINE | Wx::TE_RICH)
73
+ @t5 = t5
74
+
75
+ bsizer = Wx::BoxSizer.new(Wx::VERTICAL)
76
+ bsizer.add(b, 0, Wx::GROW | Wx::ALL, 4)
77
+ bsizer.add(b2, 0, Wx::GROW | Wx::ALL, 4)
78
+ bsizer.add(b3, 0, Wx::GROW | Wx::ALL, 4)
79
+
80
+ sizer = Wx::FlexGridSizer.new(0,3,6,6)
81
+ sizer.add(l1)
82
+ sizer.add(t1)
83
+ sizer.add(0,0)
84
+ sizer.add(l2)
85
+ sizer.add(t2)
86
+ sizer.add(0,0)
87
+ sizer.add(l3)
88
+ sizer.add(t3)
89
+ sizer.add(bsizer)
90
+ sizer.add(l4)
91
+ sizer.add(t4)
92
+ sizer.add(0,0)
93
+ sizer.add(l5)
94
+ sizer.add(t5)
95
+ sizer.add(0,0)
96
+
97
+ border = Wx::BoxSizer.new(Wx::VERTICAL)
98
+ border.add(sizer, 0, Wx::ALL, 25)
99
+ set_sizer(border)
100
+ set_auto_layout(true)
101
+ end
102
+
103
+ def on_evt_text(event)
104
+ @log.write_text("evt_text: " + event.get_string())
105
+ end
106
+
107
+ def on_evt_char(event)
108
+ @log.write_text("evt_char: " + event.get_key_code().to_s)
109
+ event.skip()
110
+ end
111
+
112
+ def on_test_replace(event)
113
+ @tc.replace(5,9, "IS A")
114
+ end
115
+
116
+ def on_test_write_text(event)
117
+ @tc.write_text("TEXT")
118
+ end
119
+
120
+ def on_test_get_selection(event)
121
+ start, stop = @tc.get_selection
122
+ text = @tc.get_string_selection # On WXMSW, is you select text using
123
+ # the results of get_selection you
124
+ # must replace \r\n\ with \n before
125
+ # taking your selection
126
+ @log.write_text("get_string_selection [#{start}..#{stop}]: " + text)
127
+ end
128
+
129
+ end
130
+
131
+
132
+ module Demo
133
+ def Demo.run(frame,nb,log)
134
+ win = TestPanel.new(nb,log)
135
+ return win
136
+ end
137
+
138
+ def Demo.overview
139
+ "A TextCtrl allows text to be displayed and (possibly) edited. It may be single" +
140
+ "line or multi-line, support styles or not, be read-only or not, and even supports" +
141
+ "text masking for such things as passwords."
142
+ end
143
+ end
144
+
145
+ if __FILE__ == $0
146
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
147
+ load run_solo_lib
148
+ run File.basename($0)
149
+ end
@@ -0,0 +1,31 @@
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
+ module Demo
13
+ def Demo.run(frame, nb, log)
14
+ dlg = Wx::TextEntryDialog.new(frame, "What is your favorite programming language?", "Duh??", "Ruby")
15
+ dlg.set_value("Ruby is the best!")
16
+ if dlg.show_modal() == Wx::ID_OK
17
+ log.write_text("You entered: " + dlg.get_value().to_s + "\n")
18
+ end
19
+ return nil
20
+ end
21
+
22
+ def Demo.overview
23
+ return "This dialog allows the user to input text"
24
+ end
25
+ end
26
+
27
+ if __FILE__ == $0
28
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
29
+ load run_solo_lib
30
+ run File.basename($0)
31
+ end
@@ -0,0 +1,49 @@
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
+ panel = Wx::Panel.new(self, -1)
17
+ buttons = Wx::BoxSizer.new(Wx::HORIZONTAL)
18
+ "These are toggle buttons".split().each do |word|
19
+ b = Wx::ToggleButton.new(panel, -1, word)
20
+ evt_togglebutton(b.get_id()) {|event| on_toggle(event)}
21
+ buttons.add(b, 0, Wx::ALL, 5)
22
+ end
23
+ panel.set_sizer(buttons)
24
+ buttons.fit(panel)
25
+ panel.move(Wx::Point.new(50,50))
26
+ end
27
+
28
+ def on_toggle(event)
29
+ @log.write_text("Button " + event.get_id().to_s() + " toggled")
30
+ end
31
+ end
32
+
33
+ module Demo
34
+ def Demo.run(frame,nb,log)
35
+ win = TestPanel.new(nb, log)
36
+ return win
37
+ end
38
+
39
+ def Demo.overview
40
+ "Wx::ToggleButton is a button that stays pressed when clicked by the user. In other words, it is similar to Wx::CheckBox in functionality but looks like a Wx::Button."
41
+ end
42
+ end
43
+
44
+
45
+ if __FILE__ == $0
46
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
47
+ load run_solo_lib
48
+ run File.basename($0)
49
+ end