wxruby-ruby19 1.9.10-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx/accessors.rb +58 -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 +51 -0
  7. data/lib/wx/classes/artprovider.rb +31 -0
  8. data/lib/wx/classes/auinotebook.rb +9 -0
  9. data/lib/wx/classes/bitmap.rb +56 -0
  10. data/lib/wx/classes/busycursor.rb +12 -0
  11. data/lib/wx/classes/checklistbox.rb +45 -0
  12. data/lib/wx/classes/choice.rb +4 -0
  13. data/lib/wx/classes/clientdc.rb +13 -0
  14. data/lib/wx/classes/clipboard.rb +32 -0
  15. data/lib/wx/classes/colour.rb +49 -0
  16. data/lib/wx/classes/combobox.rb +4 -0
  17. data/lib/wx/classes/commandevent.rb +7 -0
  18. data/lib/wx/classes/controlwithitems.rb +10 -0
  19. data/lib/wx/classes/data_object.rb +14 -0
  20. data/lib/wx/classes/data_object_simple.rb +6 -0
  21. data/lib/wx/classes/dataformat.rb +23 -0
  22. data/lib/wx/classes/dc.rb +57 -0
  23. data/lib/wx/classes/event.rb +5 -0
  24. data/lib/wx/classes/evthandler.rb +1039 -0
  25. data/lib/wx/classes/font.rb +118 -0
  26. data/lib/wx/classes/functions.rb +44 -0
  27. data/lib/wx/classes/gauge.rb +12 -0
  28. data/lib/wx/classes/genericdirctrl.rb +36 -0
  29. data/lib/wx/classes/grid.rb +146 -0
  30. data/lib/wx/classes/hboxsizer.rb +6 -0
  31. data/lib/wx/classes/helpcontroller.rb +5 -0
  32. data/lib/wx/classes/helpcontrollerhelpprovider.rb +23 -0
  33. data/lib/wx/classes/helpprovider.rb +15 -0
  34. data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
  35. data/lib/wx/classes/htmlwindow.rb +14 -0
  36. data/lib/wx/classes/icon.rb +32 -0
  37. data/lib/wx/classes/iconbundle.rb +3 -0
  38. data/lib/wx/classes/image.rb +43 -0
  39. data/lib/wx/classes/imagelist.rb +3 -0
  40. data/lib/wx/classes/listbox.rb +4 -0
  41. data/lib/wx/classes/listctrl.rb +33 -0
  42. data/lib/wx/classes/locale.rb +28 -0
  43. data/lib/wx/classes/mediactrl.rb +48 -0
  44. data/lib/wx/classes/menu.rb +62 -0
  45. data/lib/wx/classes/menuitem.rb +7 -0
  46. data/lib/wx/classes/notebook.rb +9 -0
  47. data/lib/wx/classes/object.rb +14 -0
  48. data/lib/wx/classes/paintdc.rb +12 -0
  49. data/lib/wx/classes/point.rb +56 -0
  50. data/lib/wx/classes/previewframe.rb +13 -0
  51. data/lib/wx/classes/rect.rb +19 -0
  52. data/lib/wx/classes/richtextctrl.rb +63 -0
  53. data/lib/wx/classes/simplehelpprovider.rb +38 -0
  54. data/lib/wx/classes/size.rb +58 -0
  55. data/lib/wx/classes/sizer.rb +37 -0
  56. data/lib/wx/classes/sound.rb +23 -0
  57. data/lib/wx/classes/standardpaths.rb +9 -0
  58. data/lib/wx/classes/styledtextctrl.rb +92 -0
  59. data/lib/wx/classes/textctrl.rb +14 -0
  60. data/lib/wx/classes/texturlevent.rb +18 -0
  61. data/lib/wx/classes/timer.rb +94 -0
  62. data/lib/wx/classes/toolbar.rb +27 -0
  63. data/lib/wx/classes/toolbartool.rb +4 -0
  64. data/lib/wx/classes/treectrl.rb +44 -0
  65. data/lib/wx/classes/vboxsizer.rb +6 -0
  66. data/lib/wx/classes/window.rb +89 -0
  67. data/lib/wx/classes/xmlresource.rb +54 -0
  68. data/lib/wx/helpers.rb +45 -0
  69. data/lib/wx/keyword_ctors.rb +204 -0
  70. data/lib/wx/keyword_defs.rb +558 -0
  71. data/lib/wx/version.rb +3 -0
  72. data/lib/wx.rb +53 -0
  73. data/lib/wxruby2.so +0 -0
  74. data/samples/SAMPLES-LICENSE.TXT +18 -0
  75. data/samples/aui/aui.rb +1356 -0
  76. data/samples/bigdemo/About.rbw +39 -0
  77. data/samples/bigdemo/ColorPanel.rbw +23 -0
  78. data/samples/bigdemo/GridSimple.rbw +78 -0
  79. data/samples/bigdemo/MDIDemo.rbw +57 -0
  80. data/samples/bigdemo/PopupMenu.rbw +149 -0
  81. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  82. data/samples/bigdemo/Sizers.rbw +543 -0
  83. data/samples/bigdemo/bigdemo.rb +823 -0
  84. data/samples/bigdemo/demoTemplate.rbw +33 -0
  85. data/samples/bigdemo/helpfile.htb +0 -0
  86. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  87. data/samples/bigdemo/icons/Test 015.png +0 -0
  88. data/samples/bigdemo/icons/choice.bmp +0 -0
  89. data/samples/bigdemo/icons/choice.xpm +27 -0
  90. data/samples/bigdemo/icons/combo.bmp +0 -0
  91. data/samples/bigdemo/icons/combo.xpm +27 -0
  92. data/samples/bigdemo/icons/copy.xpm +25 -0
  93. data/samples/bigdemo/icons/cut.xpm +24 -0
  94. data/samples/bigdemo/icons/gauge.bmp +0 -0
  95. data/samples/bigdemo/icons/gauge.xpm +27 -0
  96. data/samples/bigdemo/icons/help.xpm +25 -0
  97. data/samples/bigdemo/icons/list.bmp +0 -0
  98. data/samples/bigdemo/icons/list.xpm +27 -0
  99. data/samples/bigdemo/icons/mondrian.ico +0 -0
  100. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  101. data/samples/bigdemo/icons/new.xpm +24 -0
  102. data/samples/bigdemo/icons/ogl.ico +0 -0
  103. data/samples/bigdemo/icons/ogl.xpm +45 -0
  104. data/samples/bigdemo/icons/open.xpm +26 -0
  105. data/samples/bigdemo/icons/paste.bmp +0 -0
  106. data/samples/bigdemo/icons/paste.xpm +38 -0
  107. data/samples/bigdemo/icons/pointy.png +0 -0
  108. data/samples/bigdemo/icons/preview.xpm +26 -0
  109. data/samples/bigdemo/icons/print.xpm +26 -0
  110. data/samples/bigdemo/icons/radio.bmp +0 -0
  111. data/samples/bigdemo/icons/radio.xpm +27 -0
  112. data/samples/bigdemo/icons/robert.xpm +415 -0
  113. data/samples/bigdemo/icons/ruby.png +0 -0
  114. data/samples/bigdemo/icons/sashtest.ico +0 -0
  115. data/samples/bigdemo/icons/save.xpm +25 -0
  116. data/samples/bigdemo/icons/smiles.bmp +0 -0
  117. data/samples/bigdemo/icons/smiles.xpm +39 -0
  118. data/samples/bigdemo/icons/smiley.ico +0 -0
  119. data/samples/bigdemo/icons/smiley.xpm +42 -0
  120. data/samples/bigdemo/icons/stattext.xpm +24 -0
  121. data/samples/bigdemo/icons/test2.bmp +0 -0
  122. data/samples/bigdemo/icons/test2.png +0 -0
  123. data/samples/bigdemo/icons/test2.xpm +79 -0
  124. data/samples/bigdemo/icons/text.bmp +0 -0
  125. data/samples/bigdemo/icons/text.xpm +27 -0
  126. data/samples/bigdemo/icons/tog1.bmp +0 -0
  127. data/samples/bigdemo/icons/tog1.xpm +38 -0
  128. data/samples/bigdemo/icons/tog2.bmp +0 -0
  129. data/samples/bigdemo/icons/tog2.xpm +38 -0
  130. data/samples/bigdemo/icons/wxwin.ico +0 -0
  131. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  132. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  133. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  134. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  135. data/samples/bigdemo/run.rb +90 -0
  136. data/samples/bigdemo/tips.txt +7 -0
  137. data/samples/bigdemo/utils.rb +12 -0
  138. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  139. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  140. data/samples/bigdemo/wxButton.rbw +64 -0
  141. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  142. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  143. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  144. data/samples/bigdemo/wxChoice.rbw +47 -0
  145. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  146. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  147. data/samples/bigdemo/wxComboBox.rbw +77 -0
  148. data/samples/bigdemo/wxCursor.rbw +136 -0
  149. data/samples/bigdemo/wxDialog.rbw +74 -0
  150. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  151. data/samples/bigdemo/wxDragImage.rbw +70 -0
  152. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  153. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  154. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  155. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  156. data/samples/bigdemo/wxFrame.rbw +53 -0
  157. data/samples/bigdemo/wxGauge.rbw +71 -0
  158. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  159. data/samples/bigdemo/wxGrid.rbw +66 -0
  160. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  161. data/samples/bigdemo/wxListBox.rbw +140 -0
  162. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  163. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  164. data/samples/bigdemo/wxMenu.rbw +236 -0
  165. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  166. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  167. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  168. data/samples/bigdemo/wxNotebook.rbw +136 -0
  169. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  170. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  171. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  172. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  173. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  174. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  175. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  176. data/samples/bigdemo/wxSlider.rbw +42 -0
  177. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  178. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  179. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  180. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  181. data/samples/bigdemo/wxStaticText.rbw +55 -0
  182. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  183. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  184. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  185. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  186. data/samples/bigdemo/wxToolBar.rbw +131 -0
  187. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  188. data/samples/calendar/calendar.rb +256 -0
  189. data/samples/caret/caret.rb +282 -0
  190. data/samples/caret/mondrian.xpm +44 -0
  191. data/samples/controls/controls.rb +1136 -0
  192. data/samples/controls/get_item_sample.rb +87 -0
  193. data/samples/controls/icons/choice.xpm +27 -0
  194. data/samples/controls/icons/combo.xpm +27 -0
  195. data/samples/controls/icons/gauge.xpm +27 -0
  196. data/samples/controls/icons/list.xpm +27 -0
  197. data/samples/controls/icons/radio.xpm +27 -0
  198. data/samples/controls/icons/stattext.xpm +24 -0
  199. data/samples/controls/icons/text.xpm +27 -0
  200. data/samples/controls/mondrian.ico +0 -0
  201. data/samples/controls/mondrian.xpm +44 -0
  202. data/samples/controls/test2.bmp +0 -0
  203. data/samples/dialogs/dialogs.rb +797 -0
  204. data/samples/dialogs/tips.txt +18 -0
  205. data/samples/dragdrop/dragdrop.rb +177 -0
  206. data/samples/drawing/graphics_drawing.rb +235 -0
  207. data/samples/drawing/images.rb +37 -0
  208. data/samples/drawing/paperclip.png +0 -0
  209. data/samples/etc/activation.rb +102 -0
  210. data/samples/etc/choice.rb +67 -0
  211. data/samples/etc/miniframe.rb +79 -0
  212. data/samples/etc/sash.rb +130 -0
  213. data/samples/etc/scrollwin.rb +110 -0
  214. data/samples/etc/system_settings.rb +252 -0
  215. data/samples/etc/threaded.rb +72 -0
  216. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  217. data/samples/etc/wizard.rb +74 -0
  218. data/samples/event/event.rb +182 -0
  219. data/samples/event/update_ui_event.rb +70 -0
  220. data/samples/grid/grid.rb +198 -0
  221. data/samples/grid/gridtablebase.rb +148 -0
  222. data/samples/html/html.rb +262 -0
  223. data/samples/listbook/listbook.rb +174 -0
  224. data/samples/listbook/listbook.xrc +370 -0
  225. data/samples/mdi/mdi.rb +85 -0
  226. data/samples/media/mediactrl.rb +167 -0
  227. data/samples/minimal/minimal.rb +77 -0
  228. data/samples/minimal/mondrian.ico +0 -0
  229. data/samples/minimal/mondrian.png +0 -0
  230. data/samples/minimal/nothing.rb +16 -0
  231. data/samples/opengl/cube.rb +117 -0
  232. data/samples/printing/mondrian.ico +0 -0
  233. data/samples/printing/mondrian.xpm +44 -0
  234. data/samples/printing/printing.rb +487 -0
  235. data/samples/sockets/SocketPackets.rb +27 -0
  236. data/samples/sockets/res/message-new.png +0 -0
  237. data/samples/sockets/res/user.png +0 -0
  238. data/samples/sockets/wxClient.rb +395 -0
  239. data/samples/sockets/wxServer.rb +422 -0
  240. data/samples/sockets/wxSocketGUI.rb +97 -0
  241. data/samples/text/format-text-bold.png +0 -0
  242. data/samples/text/format-text-italic.png +0 -0
  243. data/samples/text/format-text-underline.png +0 -0
  244. data/samples/text/mondrian.ico +0 -0
  245. data/samples/text/mondrian.xpm +44 -0
  246. data/samples/text/rich_textctrl.rb +98 -0
  247. data/samples/text/scintilla.rb +169 -0
  248. data/samples/text/textctrl.rb +111 -0
  249. data/samples/text/unicode.rb +242 -0
  250. data/samples/text/utf8.txt +15 -0
  251. data/samples/treectrl/icon1.xpm +79 -0
  252. data/samples/treectrl/icon2.xpm +53 -0
  253. data/samples/treectrl/icon3.xpm +79 -0
  254. data/samples/treectrl/icon4.xpm +43 -0
  255. data/samples/treectrl/icon5.xpm +79 -0
  256. data/samples/treectrl/treectrl.rb +1166 -0
  257. data/samples/xrc/samples.xrc +46 -0
  258. data/samples/xrc/xrc_sample.rb +76 -0
  259. metadata +337 -0
@@ -0,0 +1,173 @@
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 FontTestPanel < Wx::Panel
13
+ def initialize(parent, log)
14
+ super(parent, -1)
15
+ @log = log
16
+ btn = Wx::Button.new(self, -1, "Select Font")
17
+ evt_button(btn.get_id()) {|event| on_select_font(event)}
18
+
19
+ @sampleText = Wx::TextCtrl.new(self, -1, "Sample Text")
20
+ @curFont = @sampleText.get_font()
21
+ @curClr = Wx::BLACK
22
+
23
+ fgs = Wx::FlexGridSizer.new(2,2, 5, 5)
24
+ fgs.add_growable_col(1)
25
+ fgs.add_growable_row(0)
26
+
27
+ fgs.add(btn, 0, Wx::ALIGN_CENTRE_VERTICAL)
28
+ fgs.add(@sampleText, 10, Wx::ADJUST_MINSIZE | Wx::GROW)
29
+
30
+ fgs.add(15, 15)
31
+ fgs.add(15, 15) # an empty row
32
+
33
+ fgs.add(Wx::StaticText.new(self, -1, "PointSize: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
34
+ @ps = Wx::StaticText.new(self, -1, "")
35
+ font = @ps.get_font()
36
+ font.set_weight(Wx::BOLD)
37
+ @ps.set_font(font)
38
+ fgs.add(@ps, 0, Wx::ALIGN_CENTRE_VERTICAL)
39
+
40
+ fgs.add(Wx::StaticText.new(self, -1, "Family: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
41
+ @family = Wx::StaticText.new(self, -1, "")
42
+ @family.set_font(font)
43
+ fgs.add(@family, 0, Wx::ALIGN_CENTRE_VERTICAL)
44
+
45
+ fgs.add(Wx::StaticText.new(self, -1, "Style: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
46
+ @style = Wx::StaticText.new(self, -1, "")
47
+ @style.set_font(font)
48
+ fgs.add(@style, 0, Wx::ALIGN_CENTRE_VERTICAL)
49
+
50
+ fgs.add(Wx::StaticText.new(self, -1, "Weight: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
51
+ @weight = Wx::StaticText.new(self, -1, "")
52
+ @weight.set_font(font)
53
+ fgs.add(@weight, 0, Wx::ALIGN_CENTRE_VERTICAL)
54
+
55
+ fgs.add(Wx::StaticText.new(self, -1, "Face: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
56
+ @face = Wx::StaticText.new(self, -1, "")
57
+ @face.set_font(font)
58
+ fgs.add(@face, 0, Wx::ALIGN_CENTRE_VERTICAL)
59
+
60
+ fgs.add(15, 15)
61
+ fgs.add(15, 15) # an empty row
62
+
63
+ fgs.add(Wx::StaticText.new(self, -1, "Wx::NativeFontInfo: "), 0, Wx::ALIGN_CENTRE_VERTICAL)
64
+ @nfi = Wx::StaticText.new(self, -1, "")
65
+ @nfi.set_font(font)
66
+ fgs.add(@nfi, 0, Wx::ALIGN_CENTRE_VERTICAL)
67
+
68
+ # give it some border space
69
+
70
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
71
+ sizer.add(fgs, 0, Wx::GROW | Wx::ADJUST_MINSIZE | Wx::ALL, 25)
72
+
73
+ set_sizer(sizer)
74
+ sizer.fit(self)
75
+ @sizer = fgs
76
+ update_ui()
77
+ end
78
+
79
+ def update_ui()
80
+ @sampleText.set_font(@curFont)
81
+ # layout() is called so that if the user changes the size of the Font, the text control will be properly displayed
82
+ # to show the whole font - just comment out this line, to see the font size change without corresponding changes
83
+ # to the text control :-)
84
+ # As a postscript, it is interesting to note that if I call layout() at the end of this method, it causes all of the
85
+ # labels to appear BLANK, showing nothing. Through trial and error, I moved it here, and found that it resized the
86
+ # text control properly and set the text of the labels too - I don't know why that is though?
87
+ @sizer.layout()
88
+ @ps.set_label(@curFont.get_point_size().to_s)
89
+ @family.set_label(map_font_value_to_name(@curFont.get_family()) )
90
+ @style.set_label(map_font_value_to_name(@curFont.get_style()))
91
+ @weight.set_label(map_font_value_to_name(@curFont.get_weight()))
92
+ @face.set_label(@curFont.get_face_name())
93
+ @nfi.set_label(@curFont.get_native_font_info_desc().to_s)
94
+
95
+
96
+ end
97
+
98
+ def on_select_font(evt)
99
+ data = Wx::FontData.new()
100
+ #data.enable_effects(true)
101
+ data.set_colour(@curClr) #set colour
102
+ data.set_initial_font(@curFont)
103
+
104
+ dlg = Wx::FontDialog.new(self, data)
105
+ if dlg.show_modal() == Wx::ID_OK
106
+ data = dlg.get_font_data()
107
+ font = data.get_chosen_font()
108
+ colour = data.get_colour()
109
+ @log.write_text("You selected: " + font.get_face_name() + ", " + font.get_point_size().to_s + " points, color (" +
110
+ get_rgb_string(colour))
111
+ @curFont = font
112
+ @curClr = colour
113
+ update_ui()
114
+ end
115
+ end
116
+
117
+ def map_font_value_to_name(constant)
118
+ case constant
119
+ when Wx::DEFAULT
120
+ return "Wx::DEFAULT"
121
+ when Wx::DECORATIVE
122
+ return "Wx::DECORATIVE"
123
+ when Wx::ROMAN
124
+ return "Wx::ROMAN"
125
+ when Wx::SCRIPT
126
+ return "Wx::SCRIPT"
127
+ when Wx::SWISS
128
+ return "Wx::SWISS"
129
+ when Wx::MODERN
130
+ return "Wx::MODERN"
131
+ when Wx::TELETYPE
132
+ return "Wx::TELETYPE"
133
+ when Wx::NORMAL
134
+ return "Wx::NORMAL"
135
+ when Wx::SLANT
136
+ return "Wx::SLANT"
137
+ when Wx::ITALIC
138
+ return "Wx::ITALIC"
139
+ when Wx::LIGHT
140
+ return "Wx::LIGHT"
141
+ when Wx::BOLD
142
+ return "Wx::BOLD"
143
+ else
144
+ return "Unknown"
145
+ end
146
+ end
147
+
148
+ def get_rgb_string(color)
149
+ red = color.red().to_s()
150
+ green = color.green().to_s()
151
+ blue = color.blue().to_s()
152
+ return "(%s, %s, %s)" % [red, green, blue]
153
+ end
154
+ end
155
+
156
+ module Demo
157
+ def Demo.run(frame, nb, log)
158
+ win = FontTestPanel.new(nb, log)
159
+ return win
160
+
161
+ end
162
+
163
+ def Demo.overview
164
+ return "This class allows you to use the system font chooser dialog."
165
+ end
166
+ end
167
+
168
+
169
+ if __FILE__ == $0
170
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
171
+ load run_solo_lib
172
+ run File.basename($0)
173
+ end
@@ -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