wxruby 1.9.0-i686-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. data/lib/wx.rb +35 -0
  2. data/lib/wx/classes/app.rb +25 -0
  3. data/lib/wx/classes/artprovider.rb +31 -0
  4. data/lib/wx/classes/bitmap.rb +23 -0
  5. data/lib/wx/classes/choice.rb +4 -0
  6. data/lib/wx/classes/clientdc.rb +13 -0
  7. data/lib/wx/classes/colour.rb +47 -0
  8. data/lib/wx/classes/combobox.rb +4 -0
  9. data/lib/wx/classes/evthandler.rb +824 -0
  10. data/lib/wx/classes/font.rb +118 -0
  11. data/lib/wx/classes/grid.rb +130 -0
  12. data/lib/wx/classes/helpcontroller.rb +5 -0
  13. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  14. data/lib/wx/classes/htmlwindow.rb +6 -0
  15. data/lib/wx/classes/icon.rb +14 -0
  16. data/lib/wx/classes/image.rb +14 -0
  17. data/lib/wx/classes/listbox.rb +4 -0
  18. data/lib/wx/classes/locale.rb +28 -0
  19. data/lib/wx/classes/object.rb +7 -0
  20. data/lib/wx/classes/paintdc.rb +12 -0
  21. data/lib/wx/classes/point.rb +5 -0
  22. data/lib/wx/classes/previewframe.rb +13 -0
  23. data/lib/wx/classes/rect.rb +5 -0
  24. data/lib/wx/classes/size.rb +5 -0
  25. data/lib/wx/classes/texturlevent.rb +6 -0
  26. data/lib/wx/classes/timer.rb +69 -0
  27. data/lib/wx/classes/window.rb +38 -0
  28. data/lib/wx/classes/xmlresource.rb +16 -0
  29. data/lib/wx/version.rb +3 -0
  30. data/lib/wxruby2.so +0 -0
  31. data/samples/SAMPLES-LICENSE.TXT +18 -0
  32. data/samples/aui/aui.rb +1352 -0
  33. data/samples/bigdemo/About.rbw +39 -0
  34. data/samples/bigdemo/ColorPanel.rbw +25 -0
  35. data/samples/bigdemo/GridSimple.rbw +80 -0
  36. data/samples/bigdemo/MDIDemo.rbw +59 -0
  37. data/samples/bigdemo/PopupMenu.rbw +151 -0
  38. data/samples/bigdemo/ShapedWindow.rbw +135 -0
  39. data/samples/bigdemo/Sizers.rbw +545 -0
  40. data/samples/bigdemo/bigdemo.rb +826 -0
  41. data/samples/bigdemo/demoTemplate.rbw +37 -0
  42. data/samples/bigdemo/helpfile.htb +0 -0
  43. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  44. data/samples/bigdemo/icons/Test 015.png +0 -0
  45. data/samples/bigdemo/icons/choice.bmp +0 -0
  46. data/samples/bigdemo/icons/choice.xpm +27 -0
  47. data/samples/bigdemo/icons/combo.bmp +0 -0
  48. data/samples/bigdemo/icons/combo.xpm +27 -0
  49. data/samples/bigdemo/icons/copy.xpm +25 -0
  50. data/samples/bigdemo/icons/cut.xpm +24 -0
  51. data/samples/bigdemo/icons/gauge.bmp +0 -0
  52. data/samples/bigdemo/icons/gauge.xpm +27 -0
  53. data/samples/bigdemo/icons/help.xpm +25 -0
  54. data/samples/bigdemo/icons/list.bmp +0 -0
  55. data/samples/bigdemo/icons/list.xpm +27 -0
  56. data/samples/bigdemo/icons/mondrian.ico +0 -0
  57. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  58. data/samples/bigdemo/icons/new.xpm +24 -0
  59. data/samples/bigdemo/icons/ogl.ico +0 -0
  60. data/samples/bigdemo/icons/ogl.xpm +45 -0
  61. data/samples/bigdemo/icons/open.xpm +26 -0
  62. data/samples/bigdemo/icons/paste.bmp +0 -0
  63. data/samples/bigdemo/icons/paste.xpm +38 -0
  64. data/samples/bigdemo/icons/pointy.png +0 -0
  65. data/samples/bigdemo/icons/preview.xpm +26 -0
  66. data/samples/bigdemo/icons/print.xpm +26 -0
  67. data/samples/bigdemo/icons/radio.bmp +0 -0
  68. data/samples/bigdemo/icons/radio.xpm +27 -0
  69. data/samples/bigdemo/icons/robert.xpm +415 -0
  70. data/samples/bigdemo/icons/ruby.png +0 -0
  71. data/samples/bigdemo/icons/sashtest.ico +0 -0
  72. data/samples/bigdemo/icons/save.xpm +25 -0
  73. data/samples/bigdemo/icons/smiles.bmp +0 -0
  74. data/samples/bigdemo/icons/smiles.xpm +39 -0
  75. data/samples/bigdemo/icons/smiley.ico +0 -0
  76. data/samples/bigdemo/icons/smiley.xpm +42 -0
  77. data/samples/bigdemo/icons/stattext.xpm +24 -0
  78. data/samples/bigdemo/icons/test2.bmp +0 -0
  79. data/samples/bigdemo/icons/test2.png +0 -0
  80. data/samples/bigdemo/icons/test2.xpm +79 -0
  81. data/samples/bigdemo/icons/text.bmp +0 -0
  82. data/samples/bigdemo/icons/text.xpm +27 -0
  83. data/samples/bigdemo/icons/tog1.bmp +0 -0
  84. data/samples/bigdemo/icons/tog1.xpm +38 -0
  85. data/samples/bigdemo/icons/tog2.bmp +0 -0
  86. data/samples/bigdemo/icons/tog2.xpm +38 -0
  87. data/samples/bigdemo/icons/wxwin.ico +0 -0
  88. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  89. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  90. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  91. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  92. data/samples/bigdemo/run.rb +94 -0
  93. data/samples/bigdemo/tips.txt +7 -0
  94. data/samples/bigdemo/utils.rb +12 -0
  95. data/samples/bigdemo/wxArtProvider.rbw +285 -0
  96. data/samples/bigdemo/wxBitmapButton.rbw +64 -0
  97. data/samples/bigdemo/wxButton.rbw +66 -0
  98. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -0
  99. data/samples/bigdemo/wxCheckBox.rbw +52 -0
  100. data/samples/bigdemo/wxCheckListBox.rbw +77 -0
  101. data/samples/bigdemo/wxChoice.rbw +49 -0
  102. data/samples/bigdemo/wxChoicebook.rbw +80 -0
  103. data/samples/bigdemo/wxColourDialog.rbw +34 -0
  104. data/samples/bigdemo/wxComboBox.rbw +79 -0
  105. data/samples/bigdemo/wxCursor.rbw +140 -0
  106. data/samples/bigdemo/wxDialog.rbw +92 -0
  107. data/samples/bigdemo/wxDirDialog.rbw +32 -0
  108. data/samples/bigdemo/wxDragImage.rbw +74 -0
  109. data/samples/bigdemo/wxFileDialog.rbw +39 -0
  110. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -0
  111. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -0
  112. data/samples/bigdemo/wxFontDialog.rbw +176 -0
  113. data/samples/bigdemo/wxFrame.rbw +55 -0
  114. data/samples/bigdemo/wxGauge.rbw +73 -0
  115. data/samples/bigdemo/wxGenericDirCtrl.rbw +78 -0
  116. data/samples/bigdemo/wxGrid.rbw +68 -0
  117. data/samples/bigdemo/wxHtmlHelpController.rbw +57 -0
  118. data/samples/bigdemo/wxListBox.rbw +142 -0
  119. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -0
  120. data/samples/bigdemo/wxMDIWindows.rbw +52 -0
  121. data/samples/bigdemo/wxMenu.rbw +238 -0
  122. data/samples/bigdemo/wxMessageDialog.rbw +30 -0
  123. data/samples/bigdemo/wxMiniFrame.rbw +74 -0
  124. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -0
  125. data/samples/bigdemo/wxNotebook.rbw +138 -0
  126. data/samples/bigdemo/wxProgressDialog.rbw +45 -0
  127. data/samples/bigdemo/wxRadioBox.rbw +74 -0
  128. data/samples/bigdemo/wxRadioButton.rbw +127 -0
  129. data/samples/bigdemo/wxSashWindow.rbw +155 -0
  130. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -0
  131. data/samples/bigdemo/wxScrolledWindow.rbw +196 -0
  132. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -0
  133. data/samples/bigdemo/wxSlider.rbw +44 -0
  134. data/samples/bigdemo/wxSpinButton.rbw +52 -0
  135. data/samples/bigdemo/wxSpinCtrl.rbw +53 -0
  136. data/samples/bigdemo/wxSplitterWindow.rbw +65 -0
  137. data/samples/bigdemo/wxStaticBitmap.rbw +53 -0
  138. data/samples/bigdemo/wxStaticText.rbw +57 -0
  139. data/samples/bigdemo/wxStatusBar.rbw +128 -0
  140. data/samples/bigdemo/wxTextCtrl.rbw +151 -0
  141. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -0
  142. data/samples/bigdemo/wxToggleButton.rbw +51 -0
  143. data/samples/bigdemo/wxToolBar.rbw +133 -0
  144. data/samples/bigdemo/wxTreeCtrl.rbw +192 -0
  145. data/samples/calendar/calendar.rb +275 -0
  146. data/samples/caret/caret.rb +296 -0
  147. data/samples/caret/mondrian.xpm +44 -0
  148. data/samples/controls/controls.rb +1140 -0
  149. data/samples/controls/get_item_sample.rb +87 -0
  150. data/samples/controls/icons/choice.xpm +27 -0
  151. data/samples/controls/icons/combo.xpm +27 -0
  152. data/samples/controls/icons/gauge.xpm +27 -0
  153. data/samples/controls/icons/list.xpm +27 -0
  154. data/samples/controls/icons/radio.xpm +27 -0
  155. data/samples/controls/icons/stattext.xpm +24 -0
  156. data/samples/controls/icons/text.xpm +27 -0
  157. data/samples/controls/mondrian.ico +0 -0
  158. data/samples/controls/mondrian.xpm +44 -0
  159. data/samples/controls/test2.bmp +0 -0
  160. data/samples/dialogs/dialogs.rb +724 -0
  161. data/samples/dialogs/tips.txt +18 -0
  162. data/samples/etc/activation.rb +108 -0
  163. data/samples/etc/choice.rb +72 -0
  164. data/samples/etc/miniframe.rb +84 -0
  165. data/samples/etc/sash.rb +135 -0
  166. data/samples/etc/scrollwin.rb +116 -0
  167. data/samples/etc/system_settings.rb +258 -0
  168. data/samples/etc/wizard.rb +81 -0
  169. data/samples/grid/grid.rb +201 -0
  170. data/samples/html/html.rb +251 -0
  171. data/samples/images/Thumbs.db +0 -0
  172. data/samples/images/images.rb +48 -0
  173. data/samples/images/paperclip.png +0 -0
  174. data/samples/listbook/listbook.rb +183 -0
  175. data/samples/listbook/listbook.xrc +370 -0
  176. data/samples/mdi/mdi.rb +87 -0
  177. data/samples/minimal/minimal.rb +95 -0
  178. data/samples/minimal/mondrian.ico +0 -0
  179. data/samples/minimal/mondrian.xpm +44 -0
  180. data/samples/minimal/nothing.rb +46 -0
  181. data/samples/minimal/text.rb +35 -0
  182. data/samples/printing/mondrian.ico +0 -0
  183. data/samples/printing/mondrian.xpm +44 -0
  184. data/samples/printing/printing.rb +484 -0
  185. data/samples/text/mondrian.ico +0 -0
  186. data/samples/text/mondrian.xpm +44 -0
  187. data/samples/text/scintilla.rb +180 -0
  188. data/samples/text/textctrl.rb +124 -0
  189. data/samples/text/unicode.rb +238 -0
  190. data/samples/text/utf8.txt +15 -0
  191. data/samples/treectrl/icon1.xpm +79 -0
  192. data/samples/treectrl/icon2.xpm +53 -0
  193. data/samples/treectrl/icon3.xpm +79 -0
  194. data/samples/treectrl/icon4.xpm +43 -0
  195. data/samples/treectrl/icon5.xpm +79 -0
  196. data/samples/treectrl/treectrl.rb +1210 -0
  197. data/samples/xrc/samples.xrc +46 -0
  198. data/samples/xrc/xrc_sample.rb +107 -0
  199. metadata +264 -0
@@ -0,0 +1,52 @@
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
+ class TestCheckBox < Wx::Panel
15
+ def initialize(parent, log)
16
+ @log = log
17
+ super(parent, -1)
18
+
19
+ Wx::StaticText.new(self, -1, "This example uses the wxCheckBox control", Wx::Point.new(10,10))
20
+
21
+ cID = Wx::ID_HIGHEST + 1
22
+ cb1 = Wx::CheckBox.new(self, cID, " Apples", Wx::Point.new(65, 40), Wx::Size.new(150,20), Wx::NO_BORDER)
23
+ cb2 = Wx::CheckBox.new(self, cID + 1, " Oranges", Wx::Point.new(65,60), Wx::Size.new(150,20), Wx::NO_BORDER)
24
+ cb3 = Wx::CheckBox.new(self, cID + 2, " Pears", Wx::Point.new(65,80), Wx::Size.new(150,20), Wx::NO_BORDER)
25
+
26
+ evt_checkbox(cID) {|event| on_check_box(event)}
27
+ evt_checkbox(cID+1) {|event| on_check_box(event)}
28
+ evt_checkbox(cID+2) {|event| on_check_box(event)}
29
+ end
30
+
31
+ def on_check_box(event)
32
+ @log.write_text("evt_checkbox: " + event.is_checked().to_s)
33
+ end
34
+ end
35
+
36
+
37
+ module Demo
38
+ def Demo.run(frame, nb, log)
39
+ win = TestCheckBox.new(nb, log)
40
+ return win
41
+ end
42
+
43
+ def Demo.overview
44
+ return "A checkbox is a labelled box which is either on (checkmark is visible) or off (no checkmark)."
45
+ end
46
+ end
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,77 @@
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
+ class TestPanel < Wx::Panel
15
+ def initialize(parent, log)
16
+ super(parent, -1)
17
+ @log = log
18
+
19
+ sampleList = %w(one two three four five six seven eight nine ten eleven twelve thirteen fourteen)
20
+
21
+ Wx::StaticText.new(self, -1, "This example uses the wxCheckListBox control.", Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE)
22
+
23
+ lb = Wx::CheckListBox.new(self, 60, Wx::Point.new(80,50), Wx::Size.new(80,120), sampleList)
24
+ evt_listbox(60) {|event| on_evt_listbox(event)}
25
+ evt_listbox_dclick(60) {|event| on_evt_listbox_dclick(event)}
26
+ lb.set_selection(0)
27
+ @lb = lb
28
+
29
+ pos = lb.get_position().x + lb.get_size().get_width() + 25
30
+ btn = Wx::Button.new(self, -1, "Test SetString", Wx::Point.new(pos,50))
31
+ evt_button(btn.get_id()) {|event| on_test_button(event)}
32
+
33
+ evt_right_up {|event| on_do_popup(event)}
34
+ end
35
+
36
+ def on_evt_listbox(event)
37
+ @log.write_text("evt_listbox: " + event.get_string())
38
+ end
39
+
40
+ def on_evt_listbox_dclick(event)
41
+ @log.write_text("evt_listbox_dclick:")
42
+ end
43
+
44
+ def on_test_button(event)
45
+ @lb.set_string(4, "FUBAR")
46
+ end
47
+
48
+ def on_do_popup(event)
49
+ menu = Wx::Menu.new()
50
+ # Make this first item bold
51
+ menu.append(50000, "Normal item &1")
52
+ menu.append(50001, "Normal item &2")
53
+ menu.append(50002, "Normal item &3")
54
+ menu.append(50003, "Normal item &4")
55
+
56
+ popup_menu(menu, event.get_position())
57
+ menu.destroy()
58
+ event.skip()
59
+ end
60
+ end
61
+
62
+ module Demo
63
+ def Demo.run(frame, nb, log)
64
+ win = TestPanel.new(nb, log)
65
+ return win
66
+ end
67
+
68
+ def Demo.overview
69
+ return "A checklistbox is like a listbox, but allows items to be checked or unchecked."
70
+ end
71
+ end
72
+
73
+ if __FILE__ == $0
74
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
75
+ load run_solo_lib
76
+ run File.basename($0)
77
+ end
@@ -0,0 +1,49 @@
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
+ class TestChoice < Wx::Panel
15
+ def initialize(parent, log)
16
+ @log = log
17
+ super(parent, -1)
18
+
19
+ sampleList = %w(one two three four five six seven eight)
20
+
21
+ Wx::StaticText.new(self, -1, "This example uses the wxChoice control.", Wx::Point.new(15,10))
22
+
23
+ Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50), Wx::Size.new(65,20))
24
+ @ch = Wx::Choice.new(self, 40, Wx::Point.new(80,50), Wx::DEFAULT_SIZE, sampleList)
25
+ evt_choice(40) {|event| on_evt_choice(event)}
26
+ end
27
+
28
+ def on_evt_choice(event)
29
+ @log.write_text("evt_choice: " + event.get_string())
30
+ @ch.append("A new item")
31
+ end
32
+ end
33
+
34
+ module Demo
35
+ def Demo.run(frame, nb, log)
36
+ win = TestChoice.new(nb, log)
37
+ return win
38
+ end
39
+
40
+ def Demo.overview
41
+ return "A choice item is used to select one of a list of strings. Unlike a listbox, only the selection is visible until the user pulls down the menu of choices."
42
+ end
43
+ end
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
@@ -0,0 +1,80 @@
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
+ class TestCB < Wx::Choicebook
15
+ def initialize(parent, log)
16
+ @log = log
17
+ super(parent, -1)
18
+
19
+ page_texts = [ "Yet",
20
+ "Another",
21
+ "Way",
22
+ "To",
23
+ "Select",
24
+ "Pages"
25
+ ]
26
+
27
+ # Now make a bunch of panels for the choice book
28
+ count = 1
29
+ page_texts.each { |txt|
30
+ win = Wx::Panel.new(self)
31
+ if count == 1
32
+ st = Wx::StaticText.new(win, -1,
33
+ "Wx::Choicebook is yet another way to switch between 'page' windows",
34
+ Wx::Point.new(10, 10))
35
+ else
36
+ st = Wx::StaticText.new(win, -1, "Page: #{count}", Wx::Point.new(10,10))
37
+ end
38
+ count += 1
39
+
40
+ add_page(win, txt)
41
+ }
42
+
43
+ evt_choicebook_page_changed(get_id) {|event| on_page_changed(event)}
44
+ evt_choicebook_page_changing(get_id) {|event| on_page_changing(event)}
45
+
46
+ end
47
+
48
+ def on_page_changed(event)
49
+ old = event.get_old_selection
50
+ new = event.get_selection
51
+ sel = get_selection
52
+ @log.write_text("on_page_changed, old:#{old}, new:#{new}, sel:#{sel}")
53
+ event.skip
54
+ end
55
+
56
+ def on_page_changing(event)
57
+ old = event.get_old_selection
58
+ new = event.get_selection
59
+ sel = get_selection
60
+ @log.write_text("on_page_changing, old:#{old}, new:#{new}, sel:#{sel}")
61
+ event.skip
62
+ end
63
+ end
64
+
65
+ module Demo
66
+ def Demo.run(frame, nb, log)
67
+ win = TestCB.new(nb, log)
68
+ return win
69
+ end
70
+
71
+ def Demo.overview
72
+ return "This class is a control similar to a notebook control, but uses a Wx::Choice to manage the selection of the pages."
73
+ end
74
+ end
75
+
76
+ if __FILE__ == $0
77
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
78
+ load run_solo_lib
79
+ run File.basename($0)
80
+ end
@@ -0,0 +1,34 @@
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
+ module Demo
15
+ def Demo.run(frame, nb, log)
16
+ dlg = Wx::ColourDialog.new(frame)
17
+ dlg.get_colour_data().set_choose_full(true)
18
+ if dlg.show_modal() == Wx::ID_OK
19
+ data = dlg.get_colour_data().get_colour()
20
+ log.write_text("You selected: (%d, %d, %d)" % [data.red, data.green, data.blue])
21
+ end
22
+ dlg.destroy()
23
+ end
24
+
25
+ def Demo.overview
26
+ return "Welcome to the wxRuby ColourDialog demo"
27
+ end
28
+ end
29
+
30
+ if __FILE__ == $0
31
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
32
+ load run_solo_lib
33
+ run File.basename($0)
34
+ end
@@ -0,0 +1,79 @@
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
+ class TestComboBox < Wx::Panel
15
+
16
+ def initialize(parent, log)
17
+ super(parent, -1)
18
+ @log = log
19
+ sampleList = %w(zero one two three four five six seven eight)
20
+
21
+ Wx::StaticText.new(self, -1, "This example uses the wxComboBox control.", Wx::Point.new(8,10))
22
+
23
+ Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50))
24
+ cb = Wx::ComboBox.new(self, 500, "default value", Wx::Point.new(90,50), Wx::DEFAULT_SIZE,
25
+ sampleList, Wx::CB_DROPDOWN)
26
+
27
+ evt_combobox(cb.get_id) {|event| on_combobox(event)}
28
+ evt_text(cb.get_id) {|event| on_evt_text(event)}
29
+ evt_text_enter(cb.get_id) {|event| on_evt_text_enter(event)}
30
+ cb.evt_set_focus {|event| on_set_focus(event)}
31
+ cb.evt_kill_focus {|event| on_kill_focus(event)}
32
+
33
+ cb.append("foo", "This is some client data for this item")
34
+
35
+
36
+ end
37
+
38
+ def on_combobox(event)
39
+ cb = event.get_event_object
40
+ data = cb.get_client_data(event.get_selection)
41
+ @log.write_text("evt_combobox: #{event.get_string}\nClient Data: #{data}")
42
+ end
43
+
44
+ def on_evt_text(event)
45
+ @log.write_text("evt_text: " + event.get_string)
46
+ end
47
+
48
+ def on_evt_text_enter(event)
49
+ @log.write_text("evt_text_enter: " + event.get_string)
50
+ end
51
+
52
+ def on_set_focus(evt)
53
+ @log.write_text("OnSetFocus")
54
+ evt.skip
55
+ end
56
+
57
+ def on_kill_focus(evt)
58
+ @log.write_text("OnKillFocus")
59
+ evt.skip
60
+ end
61
+ end
62
+
63
+ module Demo
64
+ def Demo.run(frame,nb,log)
65
+ win = TestComboBox.new(nb, log)
66
+ return win
67
+ end
68
+
69
+ def Demo.overview
70
+ "A combobox is like a combination of an edit control and a listbox. It can be displayed as static list with editable or read-only text field; or a drop-down list with text field; or a drop-down list without a text field."
71
+ end
72
+ end
73
+
74
+
75
+ if __FILE__ == $0
76
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
77
+ load run_solo_lib
78
+ run File.basename($0)
79
+ end
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env ruby
2
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
3
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
4
+
5
+ begin
6
+ require 'wx'
7
+ rescue LoadError => no_wx_err
8
+ begin
9
+ require 'rubygems'
10
+ require 'wx'
11
+ rescue LoadError
12
+ raise no_wx_err
13
+ end
14
+ end
15
+
16
+ Cursors = [
17
+ "Wx::CURSOR_ARROW",
18
+ "Wx::CURSOR_RIGHT_ARROW",
19
+ "Wx::CURSOR_BULLSEYE",
20
+ "Wx::CURSOR_CHAR",
21
+ "Wx::CURSOR_CROSS",
22
+ "Wx::CURSOR_HAND",
23
+ "Wx::CURSOR_IBEAM",
24
+ "Wx::CURSOR_LEFT_BUTTON",
25
+ "Wx::CURSOR_MAGNIFIER",
26
+ "Wx::CURSOR_MIDDLE_BUTTON",
27
+ "Wx::CURSOR_NO_ENTRY",
28
+ "Wx::CURSOR_PAINT_BRUSH",
29
+ "Wx::CURSOR_PENCIL",
30
+ "Wx::CURSOR_POINT_LEFT",
31
+ "Wx::CURSOR_POINT_RIGHT",
32
+ "Wx::CURSOR_QUESTION_ARROW",
33
+ "Wx::CURSOR_RIGHT_BUTTON",
34
+ "Wx::CURSOR_SIZENESW",
35
+ "Wx::CURSOR_SIZENS",
36
+ "Wx::CURSOR_SIZENWSE",
37
+ "Wx::CURSOR_SIZEWE",
38
+ "Wx::CURSOR_SIZING",
39
+ "Wx::CURSOR_SPRAYCAN",
40
+ "Wx::CURSOR_WAIT",
41
+ "Wx::CURSOR_WATCH",
42
+ "Wx::CURSOR_BLANK",
43
+ "Wx::CURSOR_DEFAULT",
44
+ "Wx::CURSOR_COPY_ARROW",
45
+ "Wx::CURSOR_ARROWWAIT",
46
+
47
+ "zz [custom cursor]",
48
+ ]
49
+
50
+ class TestCursor < Wx::Panel
51
+
52
+ def initialize(parent, log)
53
+ super(parent, -1)
54
+ @log = log
55
+ main_sizer = Wx::BoxSizer.new(Wx::VERTICAL)
56
+
57
+ @cb = Wx::ComboBox.new(self, 500, "Wx::CURSOR_DEFAULT",
58
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
59
+ Cursors, Wx::CB_READONLY)
60
+ main_sizer.add(@cb, 0, Wx::ALL, 10)
61
+
62
+ sub_sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
63
+ @win = Wx::Window.new(self, -1,
64
+ Wx::DEFAULT_POSITION,
65
+ Wx::Size.new(200,200), Wx::SIMPLE_BORDER)
66
+
67
+ @win.set_background_colour(Wx::WHITE)
68
+ sub_sizer.add(@win, 0, Wx::ALL, 5)
69
+
70
+ evt_combobox(@cb.get_id) {|event| on_choose_cursor(event)}
71
+ @win.evt_left_down {|event| on_draw_dot(event)}
72
+
73
+ txt = Wx::StaticText.new(self, -1,
74
+ "This sample allows you to see all the stock cursors \n"\
75
+ "available to wxRuby. Simply select a name from the \n"\
76
+ "Wx::Choice and then move the mouse into the window \n"\
77
+ "below to see the cursor. NOTE: not all stock cursors \n"\
78
+ "have a specific representaion on all platforms.\n"\
79
+ "Click in the window to see where the hotspot is.")
80
+
81
+ sub_sizer.add(txt, 0, Wx::ALL, 5)
82
+ main_sizer.add(sub_sizer, 0, Wx::ALL, 5)
83
+
84
+ self.set_sizer(main_sizer)
85
+ end
86
+
87
+ def on_choose_cursor(event)
88
+ # clear the dots
89
+ @win.refresh
90
+ choice = event.get_string
91
+ @log.write_text("Selecting the cursor #{choice}")
92
+ if choice[0..1] == 'zz'
93
+ img_file = File.join(File.dirname(__FILE__), 'icons', 'pointy.png')
94
+ image = Wx::Image.new(img_file)
95
+
96
+ # since this image didn't come from a .cur file, tell it where the
97
+ # hotspot is...
98
+ image.set_option(Wx::IMAGE_OPTION_CUR_HOTSPOT_X, 1)
99
+ image.set_option(Wx::IMAGE_OPTION_CUR_HOTSPOT_Y, 1)
100
+
101
+ # make the image into a cursor
102
+ cursor = Wx::Cursor.new(image)
103
+ else
104
+ cursor = Wx::Cursor.new(eval(choice))
105
+ end
106
+ @win.set_cursor(cursor)
107
+ end
108
+
109
+ def on_draw_dot(evt)
110
+ # Draw a dot so the user can see where the hotspot is
111
+ @win.paint do | dc |
112
+ dc.set_pen(Wx::RED_PEN)
113
+ dc.set_brush(Wx::RED_BRUSH)
114
+ pos = evt.get_position
115
+ dc.draw_circle(pos.x, pos.y, 4)
116
+ end
117
+ end
118
+
119
+
120
+ end
121
+
122
+ module Demo
123
+ def Demo.run(frame,nb,log)
124
+ win = TestCursor.new(nb, log)
125
+ return win
126
+ end
127
+
128
+ def Demo.overview
129
+ "This demo shows the stock mouse cursors that are available to wxRuby"
130
+ end
131
+ end
132
+
133
+
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