wxruby 1.9.5-universal-darwin-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) 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/app.rb +45 -0
  5. data/lib/wx/classes/artprovider.rb +31 -0
  6. data/lib/wx/classes/bitmap.rb +23 -0
  7. data/lib/wx/classes/checklistbox.rb +45 -0
  8. data/lib/wx/classes/choice.rb +4 -0
  9. data/lib/wx/classes/clientdc.rb +13 -0
  10. data/lib/wx/classes/clipboard.rb +16 -0
  11. data/lib/wx/classes/colour.rb +47 -0
  12. data/lib/wx/classes/combobox.rb +4 -0
  13. data/lib/wx/classes/commandevent.rb +7 -0
  14. data/lib/wx/classes/controlwithitems.rb +10 -0
  15. data/lib/wx/classes/dc.rb +57 -0
  16. data/lib/wx/classes/event.rb +5 -0
  17. data/lib/wx/classes/evthandler.rb +906 -0
  18. data/lib/wx/classes/font.rb +118 -0
  19. data/lib/wx/classes/gauge.rb +12 -0
  20. data/lib/wx/classes/grid.rb +129 -0
  21. data/lib/wx/classes/helpcontroller.rb +5 -0
  22. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  23. data/lib/wx/classes/htmlwindow.rb +6 -0
  24. data/lib/wx/classes/icon.rb +14 -0
  25. data/lib/wx/classes/image.rb +14 -0
  26. data/lib/wx/classes/listbox.rb +4 -0
  27. data/lib/wx/classes/listctrl.rb +21 -0
  28. data/lib/wx/classes/locale.rb +28 -0
  29. data/lib/wx/classes/mediactrl.rb +22 -0
  30. data/lib/wx/classes/menu.rb +62 -0
  31. data/lib/wx/classes/menuitem.rb +7 -0
  32. data/lib/wx/classes/object.rb +7 -0
  33. data/lib/wx/classes/paintdc.rb +12 -0
  34. data/lib/wx/classes/point.rb +48 -0
  35. data/lib/wx/classes/previewframe.rb +13 -0
  36. data/lib/wx/classes/rect.rb +10 -0
  37. data/lib/wx/classes/size.rb +49 -0
  38. data/lib/wx/classes/sound.rb +23 -0
  39. data/lib/wx/classes/styledtextctrl.rb +92 -0
  40. data/lib/wx/classes/textctrl.rb +14 -0
  41. data/lib/wx/classes/texturlevent.rb +6 -0
  42. data/lib/wx/classes/timer.rb +94 -0
  43. data/lib/wx/classes/treectrl.rb +44 -0
  44. data/lib/wx/classes/window.rb +82 -0
  45. data/lib/wx/classes/xmlresource.rb +16 -0
  46. data/lib/wx/keyword_ctors.rb +219 -0
  47. data/lib/wx/keyword_defs.rb +485 -0
  48. data/lib/wx/version.rb +3 -0
  49. data/lib/wx.rb +42 -0
  50. data/lib/wxruby2.bundle +0 -0
  51. data/samples/SAMPLES-LICENSE.TXT +18 -0
  52. data/samples/aui/aui.rb +1360 -0
  53. data/samples/bigdemo/About.rbw +39 -0
  54. data/samples/bigdemo/ColorPanel.rbw +25 -0
  55. data/samples/bigdemo/GridSimple.rbw +80 -0
  56. data/samples/bigdemo/MDIDemo.rbw +59 -0
  57. data/samples/bigdemo/PopupMenu.rbw +151 -0
  58. data/samples/bigdemo/ShapedWindow.rbw +135 -0
  59. data/samples/bigdemo/Sizers.rbw +545 -0
  60. data/samples/bigdemo/bigdemo.rb +824 -0
  61. data/samples/bigdemo/demoTemplate.rbw +37 -0
  62. data/samples/bigdemo/helpfile.htb +0 -0
  63. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  64. data/samples/bigdemo/icons/Test 015.png +0 -0
  65. data/samples/bigdemo/icons/choice.bmp +0 -0
  66. data/samples/bigdemo/icons/choice.xpm +27 -0
  67. data/samples/bigdemo/icons/combo.bmp +0 -0
  68. data/samples/bigdemo/icons/combo.xpm +27 -0
  69. data/samples/bigdemo/icons/copy.xpm +25 -0
  70. data/samples/bigdemo/icons/cut.xpm +24 -0
  71. data/samples/bigdemo/icons/gauge.bmp +0 -0
  72. data/samples/bigdemo/icons/gauge.xpm +27 -0
  73. data/samples/bigdemo/icons/help.xpm +25 -0
  74. data/samples/bigdemo/icons/list.bmp +0 -0
  75. data/samples/bigdemo/icons/list.xpm +27 -0
  76. data/samples/bigdemo/icons/mondrian.ico +0 -0
  77. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  78. data/samples/bigdemo/icons/new.xpm +24 -0
  79. data/samples/bigdemo/icons/ogl.ico +0 -0
  80. data/samples/bigdemo/icons/ogl.xpm +45 -0
  81. data/samples/bigdemo/icons/open.xpm +26 -0
  82. data/samples/bigdemo/icons/paste.bmp +0 -0
  83. data/samples/bigdemo/icons/paste.xpm +38 -0
  84. data/samples/bigdemo/icons/pointy.png +0 -0
  85. data/samples/bigdemo/icons/preview.xpm +26 -0
  86. data/samples/bigdemo/icons/print.xpm +26 -0
  87. data/samples/bigdemo/icons/radio.bmp +0 -0
  88. data/samples/bigdemo/icons/radio.xpm +27 -0
  89. data/samples/bigdemo/icons/robert.xpm +415 -0
  90. data/samples/bigdemo/icons/ruby.png +0 -0
  91. data/samples/bigdemo/icons/sashtest.ico +0 -0
  92. data/samples/bigdemo/icons/save.xpm +25 -0
  93. data/samples/bigdemo/icons/smiles.bmp +0 -0
  94. data/samples/bigdemo/icons/smiles.xpm +39 -0
  95. data/samples/bigdemo/icons/smiley.ico +0 -0
  96. data/samples/bigdemo/icons/smiley.xpm +42 -0
  97. data/samples/bigdemo/icons/stattext.xpm +24 -0
  98. data/samples/bigdemo/icons/test2.bmp +0 -0
  99. data/samples/bigdemo/icons/test2.png +0 -0
  100. data/samples/bigdemo/icons/test2.xpm +79 -0
  101. data/samples/bigdemo/icons/text.bmp +0 -0
  102. data/samples/bigdemo/icons/text.xpm +27 -0
  103. data/samples/bigdemo/icons/tog1.bmp +0 -0
  104. data/samples/bigdemo/icons/tog1.xpm +38 -0
  105. data/samples/bigdemo/icons/tog2.bmp +0 -0
  106. data/samples/bigdemo/icons/tog2.xpm +38 -0
  107. data/samples/bigdemo/icons/wxwin.ico +0 -0
  108. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  109. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  110. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  111. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  112. data/samples/bigdemo/run.rb +94 -0
  113. data/samples/bigdemo/tips.txt +7 -0
  114. data/samples/bigdemo/utils.rb +12 -0
  115. data/samples/bigdemo/wxArtProvider.rbw +285 -0
  116. data/samples/bigdemo/wxBitmapButton.rbw +64 -0
  117. data/samples/bigdemo/wxButton.rbw +66 -0
  118. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -0
  119. data/samples/bigdemo/wxCheckBox.rbw +52 -0
  120. data/samples/bigdemo/wxCheckListBox.rbw +77 -0
  121. data/samples/bigdemo/wxChoice.rbw +49 -0
  122. data/samples/bigdemo/wxChoicebook.rbw +80 -0
  123. data/samples/bigdemo/wxColourDialog.rbw +34 -0
  124. data/samples/bigdemo/wxComboBox.rbw +79 -0
  125. data/samples/bigdemo/wxCursor.rbw +140 -0
  126. data/samples/bigdemo/wxDialog.rbw +76 -0
  127. data/samples/bigdemo/wxDirDialog.rbw +32 -0
  128. data/samples/bigdemo/wxDragImage.rbw +74 -0
  129. data/samples/bigdemo/wxFileDialog.rbw +39 -0
  130. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -0
  131. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -0
  132. data/samples/bigdemo/wxFontDialog.rbw +176 -0
  133. data/samples/bigdemo/wxFrame.rbw +55 -0
  134. data/samples/bigdemo/wxGauge.rbw +73 -0
  135. data/samples/bigdemo/wxGenericDirCtrl.rbw +78 -0
  136. data/samples/bigdemo/wxGrid.rbw +68 -0
  137. data/samples/bigdemo/wxHtmlHelpController.rbw +57 -0
  138. data/samples/bigdemo/wxListBox.rbw +142 -0
  139. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -0
  140. data/samples/bigdemo/wxMDIWindows.rbw +52 -0
  141. data/samples/bigdemo/wxMenu.rbw +238 -0
  142. data/samples/bigdemo/wxMessageDialog.rbw +30 -0
  143. data/samples/bigdemo/wxMiniFrame.rbw +74 -0
  144. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -0
  145. data/samples/bigdemo/wxNotebook.rbw +138 -0
  146. data/samples/bigdemo/wxProgressDialog.rbw +45 -0
  147. data/samples/bigdemo/wxRadioBox.rbw +74 -0
  148. data/samples/bigdemo/wxRadioButton.rbw +127 -0
  149. data/samples/bigdemo/wxSashWindow.rbw +145 -0
  150. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -0
  151. data/samples/bigdemo/wxScrolledWindow.rbw +201 -0
  152. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -0
  153. data/samples/bigdemo/wxSlider.rbw +44 -0
  154. data/samples/bigdemo/wxSpinButton.rbw +52 -0
  155. data/samples/bigdemo/wxSpinCtrl.rbw +53 -0
  156. data/samples/bigdemo/wxSplitterWindow.rbw +65 -0
  157. data/samples/bigdemo/wxStaticBitmap.rbw +53 -0
  158. data/samples/bigdemo/wxStaticText.rbw +57 -0
  159. data/samples/bigdemo/wxStatusBar.rbw +128 -0
  160. data/samples/bigdemo/wxTextCtrl.rbw +151 -0
  161. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -0
  162. data/samples/bigdemo/wxToggleButton.rbw +51 -0
  163. data/samples/bigdemo/wxToolBar.rbw +133 -0
  164. data/samples/bigdemo/wxTreeCtrl.rbw +192 -0
  165. data/samples/calendar/calendar.rb +275 -0
  166. data/samples/caret/caret.rb +286 -0
  167. data/samples/caret/mondrian.xpm +44 -0
  168. data/samples/controls/controls.rb +1140 -0
  169. data/samples/controls/get_item_sample.rb +87 -0
  170. data/samples/controls/icons/choice.xpm +27 -0
  171. data/samples/controls/icons/combo.xpm +27 -0
  172. data/samples/controls/icons/gauge.xpm +27 -0
  173. data/samples/controls/icons/list.xpm +27 -0
  174. data/samples/controls/icons/radio.xpm +27 -0
  175. data/samples/controls/icons/stattext.xpm +24 -0
  176. data/samples/controls/icons/text.xpm +27 -0
  177. data/samples/controls/mondrian.ico +0 -0
  178. data/samples/controls/mondrian.xpm +44 -0
  179. data/samples/controls/test2.bmp +0 -0
  180. data/samples/dialogs/dialogs.rb +724 -0
  181. data/samples/dialogs/tips.txt +18 -0
  182. data/samples/drawing/graphics_drawing.rb +236 -0
  183. data/samples/drawing/images.rb +42 -0
  184. data/samples/drawing/paperclip.png +0 -0
  185. data/samples/etc/activation.rb +108 -0
  186. data/samples/etc/choice.rb +72 -0
  187. data/samples/etc/miniframe.rb +84 -0
  188. data/samples/etc/sash.rb +135 -0
  189. data/samples/etc/scrollwin.rb +116 -0
  190. data/samples/etc/system_settings.rb +258 -0
  191. data/samples/etc/threaded.rb +78 -0
  192. data/samples/etc/wizard.rb +79 -0
  193. data/samples/event/event.rb +184 -0
  194. data/samples/grid/grid.rb +202 -0
  195. data/samples/html/html.rb +268 -0
  196. data/samples/listbook/listbook.rb +181 -0
  197. data/samples/listbook/listbook.xrc +370 -0
  198. data/samples/mdi/mdi.rb +87 -0
  199. data/samples/media/mediactrl.rb +173 -0
  200. data/samples/minimal/minimal.rb +85 -0
  201. data/samples/minimal/mondrian.ico +0 -0
  202. data/samples/minimal/mondrian.png +0 -0
  203. data/samples/minimal/nothing.rb +21 -0
  204. data/samples/opengl/cube.rb +123 -0
  205. data/samples/printing/mondrian.ico +0 -0
  206. data/samples/printing/mondrian.xpm +44 -0
  207. data/samples/printing/printing.rb +484 -0
  208. data/samples/sockets/SocketPackets.rb +27 -0
  209. data/samples/sockets/res/message-new.png +0 -0
  210. data/samples/sockets/res/user.png +0 -0
  211. data/samples/sockets/wxClient.rb +395 -0
  212. data/samples/sockets/wxServer.rb +422 -0
  213. data/samples/sockets/wxSocketGUI.rb +97 -0
  214. data/samples/text/mondrian.ico +0 -0
  215. data/samples/text/mondrian.xpm +44 -0
  216. data/samples/text/scintilla.rb +174 -0
  217. data/samples/text/textctrl.rb +124 -0
  218. data/samples/text/unicode.rb +238 -0
  219. data/samples/text/utf8.txt +15 -0
  220. data/samples/treectrl/icon1.xpm +79 -0
  221. data/samples/treectrl/icon2.xpm +53 -0
  222. data/samples/treectrl/icon3.xpm +79 -0
  223. data/samples/treectrl/icon4.xpm +43 -0
  224. data/samples/treectrl/icon5.xpm +79 -0
  225. data/samples/treectrl/treectrl.rb +1180 -0
  226. data/samples/xrc/samples.xrc +46 -0
  227. data/samples/xrc/xrc_sample.rb +107 -0
  228. metadata +305 -0
@@ -0,0 +1,176 @@
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 FontTestPanel < Wx::Panel
15
+ def initialize(parent, log)
16
+ super(parent, -1)
17
+ @log = log
18
+ btn = Wx::Button.new(self, -1, "Select Font")
19
+ evt_button(btn.get_id()) {|event| on_select_font(event)}
20
+
21
+ @sampleText = Wx::TextCtrl.new(self, -1, "Sample Text")
22
+ @curFont = @sampleText.get_font()
23
+ @curClr = Wx::BLACK
24
+
25
+ fgs = Wx::FlexGridSizer.new(2,2, 5, 5)
26
+ fgs.add_growable_col(1)
27
+ fgs.add_growable_row(0)
28
+
29
+ fgs.add(btn, 0, Wx::ALIGN_CENTRE_VERTICAL)
30
+ fgs.add(@sampleText, 10, Wx::ADJUST_MINSIZE | Wx::GROW)
31
+
32
+ fgs.add(15, 15)
33
+ fgs.add(15, 15) # an empty row
34
+
35
+ fgs.add(Wx::StaticText.new(self, -1, "PointSize: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
36
+ @ps = Wx::StaticText.new(self, -1, "")
37
+ font = @ps.get_font()
38
+ font.set_weight(Wx::BOLD)
39
+ @ps.set_font(font)
40
+ fgs.add(@ps, 0, Wx::ALIGN_CENTRE_VERTICAL)
41
+
42
+ fgs.add(Wx::StaticText.new(self, -1, "Family: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
43
+ @family = Wx::StaticText.new(self, -1, "")
44
+ @family.set_font(font)
45
+ fgs.add(@family, 0, Wx::ALIGN_CENTRE_VERTICAL)
46
+
47
+ fgs.add(Wx::StaticText.new(self, -1, "Style: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
48
+ @style = Wx::StaticText.new(self, -1, "")
49
+ @style.set_font(font)
50
+ fgs.add(@style, 0, Wx::ALIGN_CENTRE_VERTICAL)
51
+
52
+ fgs.add(Wx::StaticText.new(self, -1, "Weight: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
53
+ @weight = Wx::StaticText.new(self, -1, "")
54
+ @weight.set_font(font)
55
+ fgs.add(@weight, 0, Wx::ALIGN_CENTRE_VERTICAL)
56
+
57
+ fgs.add(Wx::StaticText.new(self, -1, "Face: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
58
+ @face = Wx::StaticText.new(self, -1, "")
59
+ @face.set_font(font)
60
+ fgs.add(@face, 0, Wx::ALIGN_CENTRE_VERTICAL)
61
+
62
+ fgs.add(15, 15)
63
+ fgs.add(15, 15) # an empty row
64
+
65
+ fgs.add(Wx::StaticText.new(self, -1, "Wx::NativeFontInfo: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
66
+ @nfi = Wx::StaticText.new(self, -1, "")
67
+ @nfi.set_font(font)
68
+ fgs.add(@nfi, 0, Wx::ALIGN_CENTRE_VERTICAL)
69
+
70
+ # give it some border space
71
+
72
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
73
+ sizer.add(fgs, 0, Wx::GROW | Wx::ADJUST_MINSIZE | Wx::ALL, 25)
74
+
75
+ set_sizer(sizer)
76
+ sizer.fit(self)
77
+ @sizer = fgs
78
+ update_ui()
79
+ end
80
+
81
+ def update_ui()
82
+ @sampleText.set_font(@curFont)
83
+ # layout() is called so that if the user changes the size of the Font, the text control will be properly displayed
84
+ # to show the whole font - just comment out this line, to see the font size change without corresponding changes
85
+ # to the text control :-)
86
+ # As a postscript, it is interesting to note that if I call layout() at the end of this method, it causes all of the
87
+ # labels to appear BLANK, showing nothing. Through trial and error, I moved it here, and found that it resized the
88
+ # text control properly and set the text of the labels too - I don't know why that is though?
89
+ @sizer.layout()
90
+ @ps.set_label(@curFont.get_point_size().to_s)
91
+ @family.set_label(map_font_value_to_name(@curFont.get_family()) )
92
+ @style.set_label(map_font_value_to_name(@curFont.get_style()))
93
+ @weight.set_label(map_font_value_to_name(@curFont.get_weight()))
94
+ @face.set_label(@curFont.get_face_name())
95
+ @nfi.set_label(@curFont.get_native_font_info_desc().to_s)
96
+
97
+
98
+ end
99
+
100
+ def on_select_font(evt)
101
+ data = Wx::FontData.new()
102
+ #data.enable_effects(true)
103
+ data.set_colour(@curClr) #set colour
104
+ data.set_initial_font(@curFont)
105
+
106
+ dlg = Wx::FontDialog.new(self, data)
107
+ if dlg.show_modal() == Wx::ID_OK
108
+ data = dlg.get_font_data()
109
+ font = data.get_chosen_font()
110
+ colour = data.get_colour()
111
+ @log.write_text("You selected: " + font.get_face_name() + ", " + font.get_point_size().to_s + " points, color (" +
112
+ get_rgb_string(colour))
113
+ @curFont = font
114
+ @curClr = colour
115
+ update_ui()
116
+ end
117
+ dlg.destroy()
118
+ end
119
+
120
+ def map_font_value_to_name(constant)
121
+ case constant
122
+ when Wx::DEFAULT
123
+ return "Wx::DEFAULT"
124
+ when Wx::DECORATIVE
125
+ return "Wx::DECORATIVE"
126
+ when Wx::ROMAN
127
+ return "Wx::ROMAN"
128
+ when Wx::SCRIPT
129
+ return "Wx::SCRIPT"
130
+ when Wx::SWISS
131
+ return "Wx::SWISS"
132
+ when Wx::MODERN
133
+ return "Wx::MODERN"
134
+ when Wx::TELETYPE
135
+ return "Wx::TELETYPE"
136
+ when Wx::NORMAL
137
+ return "Wx::NORMAL"
138
+ when Wx::SLANT
139
+ return "Wx::SLANT"
140
+ when Wx::ITALIC
141
+ return "Wx::ITALIC"
142
+ when Wx::LIGHT
143
+ return "Wx::LIGHT"
144
+ when Wx::BOLD
145
+ return "Wx::BOLD"
146
+ else
147
+ return "Unknown"
148
+ end
149
+ end
150
+
151
+ def get_rgb_string(color)
152
+ red = color.red().to_s()
153
+ green = color.green().to_s()
154
+ blue = color.blue().to_s()
155
+ return "(%s, %s, %s)" % [red, green, blue]
156
+ end
157
+ end
158
+
159
+ module Demo
160
+ def Demo.run(frame, nb, log)
161
+ win = FontTestPanel.new(nb, log)
162
+ return win
163
+
164
+ end
165
+
166
+ def Demo.overview
167
+ return "This class allows you to use the system font chooser dialog."
168
+ end
169
+ end
170
+
171
+
172
+ if __FILE__ == $0
173
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
174
+ load run_solo_lib
175
+ run File.basename($0)
176
+ end
@@ -0,0 +1,55 @@
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
+ include Wx
14
+
15
+ class MyFrame < Frame
16
+ def initialize
17
+ super(nil, -1, "Wx::Frame demonstration",
18
+ DEFAULT_POSITION, Size.new(350,200), DEFAULT_FRAME_STYLE)
19
+ panel = Panel.new(self, -1)
20
+
21
+ button = Button.new(panel, -1, "Close me", Point.new(15,15))
22
+ evt_button( button.get_id ) { on_close_me }
23
+ evt_close { | e | on_close_window(e) }
24
+ end
25
+
26
+ def on_close_me
27
+ close(true)
28
+ end
29
+
30
+ def on_close_window(event)
31
+
32
+ event.skip
33
+ end
34
+ end
35
+
36
+ module Demo
37
+ def Demo.run(frame, nb, log)
38
+ win = MyFrame.new
39
+ frame.otherWin = win
40
+ win.center_on_parent(Wx::BOTH)
41
+ win.show(true)
42
+ end
43
+
44
+ def Demo.overview
45
+ return "This is the wxFrame Overview!"
46
+
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,73 @@
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
+ @count = 0
19
+
20
+ Wx::StaticText.new( self, -1, "This example shows the wxGauge control.",
21
+ Wx::Point.new(45,15))
22
+
23
+ @g1 = Wx::Gauge.new( self, -1, 50,
24
+ Wx::Point.new(110,50), Wx::Size.new(250,25))
25
+ @g1.set_bezel_face(3)
26
+ @g1.set_shadow_width(3)
27
+
28
+ @g2 = Wx::Gauge.new( self, -1, 50,
29
+ Wx::Point.new(110,95), Wx::Size.new(250,25),
30
+ Wx::GA_HORIZONTAL|Wx::GA_SMOOTH)
31
+ @g2.set_bezel_face(5)
32
+ @g2.set_shadow_width(5)
33
+
34
+ @g3 = Wx::Gauge.new( self, -1, 50,
35
+ Wx::Point.new(110, 140), Wx::Size.new(25,250),
36
+ Wx::GA_VERTICAL)
37
+ @g3.set_bezel_face(3)
38
+ @g3.set_shadow_width(3)
39
+
40
+ # start a timer to move the gauges forward every 1/4 s
41
+ timer = Wx::Timer.new(self, 5001)
42
+ evt_timer(5001) { move_gauges }
43
+ timer.start(250)
44
+ end
45
+
46
+ # advance the gauges
47
+ def move_gauges
48
+ @count +=1
49
+ if @count > 50
50
+ @count = 0
51
+ end
52
+ @g1.set_value(@count)
53
+ @g2.set_value(@count)
54
+ @g3.set_value(@count)
55
+ end
56
+ end
57
+
58
+ module Demo
59
+ def Demo.run(frame, nb, log)
60
+ win = TestPanel.new(nb, log)
61
+ return win
62
+ end
63
+
64
+ def Demo.overview
65
+ return "A gauge is a horizontal or vertical bar which shows a quantity (often time). "
66
+ end
67
+ end
68
+
69
+ if __FILE__ == $0
70
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
71
+ load run_solo_lib
72
+ run File.basename($0)
73
+ end
@@ -0,0 +1,78 @@
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
+ class TestPanel < Wx::Panel
17
+ def initialize(parent, log)
18
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
19
+ @log = log
20
+
21
+ txt1 = Wx::StaticText.new(self, -1, "style=0")
22
+ dir1 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), 0)
23
+
24
+ txt2 = Wx::StaticText.new(self, -1, "Wx::DIRCTRL_DIR_ONLY")
25
+ dir2 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), Wx::DIRCTRL_DIR_ONLY)
26
+
27
+ txt3 = Wx::StaticText.new(self, -1, "Wx::DIRCTRL_SHOW_FILTERS")
28
+ dir3 = Wx::GenericDirCtrl.new(self, -1, '/', Wx::DEFAULT_POSITION, Wx::Size.new(200,225), Wx::DIRCTRL_SHOW_FILTERS,
29
+ "All files (*.*)|*.*|Ruby files (*.rb)|*.rb")
30
+
31
+ sz = Wx::FlexGridSizer.new(3, 5, 5)
32
+ sz.add(35, 35) # some space above
33
+ sz.add(35, 35)
34
+ sz.add(35, 35)
35
+
36
+ sz.add(txt1)
37
+ sz.add(txt2)
38
+ sz.add(txt3)
39
+
40
+ sz.add(dir1, 0, Wx::EXPAND)
41
+ sz.add(dir2, 0, Wx::EXPAND)
42
+ sz.add(dir3, 0, Wx::EXPAND)
43
+
44
+ sz.add(35,35) # some space below
45
+
46
+ sz.add_growable_row(2)
47
+ sz.add_growable_col(0)
48
+ sz.add_growable_col(1)
49
+ sz.add_growable_col(2)
50
+
51
+ set_sizer(sz)
52
+ set_auto_layout(true)
53
+ end
54
+ end
55
+
56
+ module Demo
57
+
58
+ def Demo.run(frame, nb, log)
59
+ win = TestPanel.new(nb, log)
60
+ return win
61
+ end
62
+
63
+ def Demo.overview
64
+ return <<EOS
65
+ This control can be used to place a directory listing (with optional files)
66
+ on an arbitrary window. The control contains a TreeCtrl window representing
67
+ the directory hierarchy, and optionally, a Choice window containing a list
68
+ of filters.
69
+ EOS
70
+ end
71
+
72
+ end
73
+
74
+ if __FILE__ == $0
75
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
76
+ load run_solo_lib
77
+ run File.basename($0)
78
+ end
@@ -0,0 +1,68 @@
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
+ $buttonDefs = {
15
+ 814 => ['GridSimple', ' Simple wxGrid'] # , catching all events '] ,
16
+ # 815 => ['GridStdEdRend', ' wxGrid showing Editors and Renderers '],
17
+ # 818 => ['GridHugeTable', ' A wxGrid with a HUGE table [100 MILLION cells!] '],
18
+ # 817 => ['GridCustTable', ' wxGrid using a custom Table, with non-string data '],
19
+ # 819 => ['GridEnterHandler',' Remapping keys to behave differently '],
20
+ # 820 => ['GridCustEditor', ' Shows how to create a custom Cell Editor '],
21
+ # 821 => ['GridDragable', ' A wxGrid with dragable rows and columns '],
22
+ # 822 => ['GridDragAndDrop', 'Shows how to make a grid a drop target for files'],
23
+ }
24
+
25
+ class ButtonPanel < Wx::Panel
26
+ def initialize(parent, log)
27
+ super(parent, -1)
28
+ @log = log
29
+
30
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
31
+ box.add(20,30)
32
+ keys = $buttonDefs.keys().sort()
33
+ keys.each do |key|
34
+ text = $buttonDefs[key][1]
35
+ btn = Wx::Button.new(self, key, text)
36
+ box.add(btn, 0, Wx::ALIGN_CENTER | Wx::ALL, 10)
37
+ evt_button(key) {|event| on_button(event)}
38
+ end
39
+ set_sizer(box)
40
+ end
41
+
42
+ def on_button(event)
43
+ modName = $buttonDefs[event.get_id()][0]
44
+ mod_file = File.join(File.dirname(__FILE__), modName + ".rbw")
45
+ load mod_file
46
+
47
+ frame = GridDemo::TestFrame.new(nil, @log)
48
+ frame.show()
49
+ end
50
+ end
51
+
52
+ module Demo
53
+ def Demo.run(frame,nb,log)
54
+ win = ButtonPanel.new(nb, log)
55
+ return win
56
+ end
57
+
58
+ def Demo.overview
59
+ "A simple grid."
60
+ end
61
+ end
62
+
63
+
64
+ if __FILE__ == $0
65
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
66
+ load run_solo_lib
67
+ run File.basename($0)
68
+ end
@@ -0,0 +1,57 @@
1
+
2
+ #!/usr/bin/env ruby
3
+ # wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
4
+ # Freely reusable code: see SAMPLES-LICENSE.TXT for details
5
+
6
+ begin
7
+ require 'wx'
8
+ rescue LoadError => no_wx_err
9
+ begin
10
+ require 'rubygems'
11
+ require 'wx'
12
+ rescue LoadError
13
+ raise no_wx_err
14
+ end
15
+ end
16
+
17
+
18
+ class TestPanel < Wx::Panel
19
+ def initialize(parent, log)
20
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
21
+ Wx::NO_FULL_REPAINT_ON_RESIZE)
22
+ @log = log
23
+
24
+ b = Wx::Button.new(self, -1, 'Give me some help!',
25
+ Wx::Point.new(50,50))
26
+
27
+ evt_button(b.get_id) { on_button }
28
+ end
29
+
30
+ def on_button
31
+ help = Wx::HtmlHelpController.instance
32
+ help_file = File.join( File.dirname(__FILE__), 'helpfile.htb')
33
+ exit if not File.exists?(help_file)
34
+ help.add_book( File.expand_path(help_file), false )
35
+ help.display_contents
36
+ end
37
+ end
38
+
39
+ module Demo
40
+ def Demo.run(frame, nb, log)
41
+ TestPanel.new(nb, log)
42
+ end
43
+
44
+ def Demo.overview
45
+ "Wx::HtmlHelpController is a sophisticated viewer for online help\n" +
46
+ "documentation in HTML format. It uses a format based on the Microsoft\n" +
47
+ "HTML Help format, but is available on all platforms. It includes a\n" +
48
+ "contents page, index and keyword search."
49
+ end
50
+ end
51
+
52
+
53
+ if __FILE__ == $0
54
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
55
+ load run_solo_lib
56
+ run File.basename($0)
57
+ end
@@ -0,0 +1,142 @@
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 FindPrefixListBox < Wx::ListBox
15
+ def initialize(parent, id, pos=Wx::DEFAULT_POSITION, size=Wx::DEFAULT_SIZE, choices=[], style=0)
16
+ super(parent, id, pos, size, choices, style)
17
+ @typedText = ""
18
+ @log = parent.log
19
+ evt_key_down {|event| on_key(event)}
20
+ end
21
+
22
+ def find_prefix(prefix)
23
+ @log.write_text("Looking for prefix: " + prefix.to_s)
24
+ if prefix
25
+ prefix.downcase!
26
+ length = prefix.length
27
+ 0.upto(get_count) do |x|
28
+ text = get_string(x).to_s.downcase
29
+ if text[0,length] == prefix
30
+ @log.write_text("Prefix " + prefix + " is found.")
31
+ return x
32
+ end
33
+ end
34
+ end
35
+ @log.write_text("Prefix " + prefix + " is not found.")
36
+ return -1
37
+ end
38
+
39
+ def on_key(event)
40
+ key = event.get_key_code
41
+ if key >= 32 and key <= 127
42
+ @typedText += key.chr
43
+ item = find_prefix(@typedText)
44
+ if item != -1
45
+ set_selection(item)
46
+ end
47
+ elsif key == Wx::K_BACK # backspace removes one character and backs up
48
+ @typedText = @typedText[0..-2]
49
+ if not @typedText
50
+ set_selection(0)
51
+ else
52
+ item = find_prefix(@typedText)
53
+ if item != -1
54
+ set_selection(item)
55
+ end
56
+ end
57
+
58
+ else
59
+ @typedText = ""
60
+ event.skip
61
+ end
62
+ end
63
+
64
+ def on_key_down(event)
65
+
66
+ end
67
+ end
68
+
69
+ class TestListBox < Wx::Panel
70
+ attr_reader :log
71
+ def initialize(parent, log)
72
+ @log = log
73
+ super(parent, -1)
74
+
75
+ sampleList = %w(zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen)
76
+
77
+ Wx::StaticText.new(self, -1, "This example uses the wxListBox control.", Wx::Point.new(45,10))
78
+
79
+ Wx::StaticText.new(self, -1, "Select one:", Wx::Point.new(15,50), Wx::Size.new(65,18))
80
+ @lb1 = Wx::ListBox.new(self, 60, Wx::Point.new(80,50), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
81
+ evt_listbox(@lb1.get_id) {|event| on_evt_listbox(event)}
82
+ evt_listbox_dclick(@lb1.get_id) {|event| on_evt_listbox_dclick(event)}
83
+ @lb1.set_selection(3)
84
+ @lb1.append("with data", "This one has data")
85
+ @lb1.set_client_data(2, "This one has data")
86
+
87
+ Wx::StaticText.new(self, -1, "Select many:", Wx::Point.new(200,50), Wx::Size.new(65,18))
88
+ @lb2 = Wx::ListBox.new(self, 70, Wx::Point.new(280,50), Wx::Size.new(80,120), sampleList, Wx::LB_EXTENDED)
89
+ evt_listbox(@lb2.get_id) {|event| on_evt_multi_listbox(event)}
90
+ @lb2.evt_right_up {|event| on_evt_right_button(event)}
91
+ @lb2.set_selection(0)
92
+
93
+ sampleList += ["test a", "test aa", "test aab", "test ab", "test abc", "test abcc", "test abcd"]
94
+ sampleList.sort!
95
+ Wx::StaticText.new(self, -1, "Find typed prefix:", Wx::Point.new(15,250))
96
+ fp = FindPrefixListBox.new(self, -1, Wx::Point.new(110,250), Wx::Size.new(80,120), sampleList, Wx::LB_SINGLE)
97
+ fp.set_selection(0)
98
+ end
99
+
100
+ def on_evt_listbox(event)
101
+ @log.write_text("evt_listbox: #{event.get_string}, #{event.is_selection}, #{event.get_selection}, #{event.get_client_data}")
102
+ end
103
+
104
+ def on_evt_listbox_dclick(event)
105
+ @log.write_text("evt_listbox_dclick: " + @lb1.get_selection.to_s)
106
+ @lb1.delete(@lb1.get_selection)
107
+ end
108
+
109
+ def on_evt_multi_listbox(event)
110
+ @log.write_text("evt_multi_listbox: (" +
111
+ @lb2.get_selections.join(',') + ")")
112
+ end
113
+
114
+ def on_evt_right_button(event)
115
+ @log.write_text("evt_right_button: " + event.get_position.to_s)
116
+ if event.get_event_object.get_id == 70
117
+ selections = @lb2.get_selections
118
+ selections.reverse!
119
+ selections.each do |index|
120
+ @lb2.delete(index)
121
+ end
122
+ end
123
+ end
124
+ end
125
+
126
+ module Demo
127
+ def Demo.run(frame,nb,log)
128
+ win = TestListBox.new(nb, log)
129
+ return win
130
+ end
131
+
132
+ def Demo.overview
133
+ "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)."
134
+ end
135
+ end
136
+
137
+
138
+ if __FILE__ == $0
139
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
140
+ load run_solo_lib
141
+ run File.basename($0)
142
+ end