wxruby 1.9.0-powerpc-darwin8.10.0

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.bundle +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,7 @@
1
+ Welcome to the WxRuby Tutorial! Click on all the different demos to learn how to use each kind of widget.
2
+ This demo was ported from wxPython. Thanks to Robin Dunn for his hard work and generosity!
3
+ Check out the WxRuby wiki at http://wxruby.rubyforge.org!
4
+ Don't forget to check out the samples that come with WxRuby - many contain more advanced examples of WxRuby than you'll find here.
5
+ Thanks to Kevin Smith for all his hard work - he made this Demo possible!
6
+ Thanks to Curt Hibbs for all his hard work - his WxRuby installer for Windows saved my life!
7
+ Thanks to Robert Carlin for porting this demo (I know, it's a shameless plug :-)
@@ -0,0 +1,12 @@
1
+ # This module contains various utilities to simplify the implementation of the WxRuby Demo
2
+
3
+ module WxDemoUtilities
4
+
5
+ #Convert paths to the platform-specific separator
6
+
7
+ def opj(path)
8
+
9
+ end
10
+
11
+ #----------------------------------------------------------
12
+ end
@@ -0,0 +1,285 @@
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
+ ArtClients = [ "Wx::ART_TOOLBAR",
17
+ "Wx::ART_MENU",
18
+ "Wx::ART_FRAME_ICON",
19
+ "Wx::ART_CMN_DIALOG",
20
+ "Wx::ART_HELP_BROWSER",
21
+ "Wx::ART_MESSAGE_BOX",
22
+ "Wx::ART_OTHER",
23
+ ]
24
+
25
+ ArtIDs = [ "Wx::ART_ADD_BOOKMARK",
26
+ "Wx::ART_DEL_BOOKMARK",
27
+ "Wx::ART_HELP_SIDE_PANEL",
28
+ "Wx::ART_HELP_SETTINGS",
29
+ "Wx::ART_HELP_BOOK",
30
+ "Wx::ART_HELP_FOLDER",
31
+ "Wx::ART_HELP_PAGE",
32
+ "Wx::ART_GO_BACK",
33
+ "Wx::ART_GO_FORWARD",
34
+ "Wx::ART_GO_UP",
35
+ "Wx::ART_GO_DOWN",
36
+ "Wx::ART_GO_TO_PARENT",
37
+ "Wx::ART_GO_HOME",
38
+ "Wx::ART_FILE_OPEN",
39
+ "Wx::ART_FILE_SAVE",
40
+ "Wx::ART_FILE_SAVE_AS",
41
+ "Wx::ART_PRINT",
42
+ "Wx::ART_HELP",
43
+ "Wx::ART_TIP",
44
+ "Wx::ART_REPORT_VIEW",
45
+ "Wx::ART_LIST_VIEW",
46
+ "Wx::ART_NEW_DIR",
47
+ "Wx::ART_HARDDISK",
48
+ "Wx::ART_FLOPPY",
49
+ "Wx::ART_CDROM",
50
+ "Wx::ART_REMOVABLE",
51
+ "Wx::ART_FOLDER",
52
+ "Wx::ART_FOLDER_OPEN",
53
+ "Wx::ART_GO_DIR_UP",
54
+ "Wx::ART_EXECUTABLE_FILE",
55
+ "Wx::ART_NORMAL_FILE",
56
+ "Wx::ART_TICK_MARK",
57
+ "Wx::ART_CROSS_MARK",
58
+ "Wx::ART_ERROR",
59
+ "Wx::ART_QUESTION",
60
+ "Wx::ART_WARNING",
61
+ "Wx::ART_INFORMATION",
62
+ "Wx::ART_MISSING_IMAGE",
63
+ "Wx::ART_COPY",
64
+ "Wx::ART_CUT",
65
+ "Wx::ART_PASTE",
66
+ "Wx::ART_DELETE",
67
+ "Wx::ART_NEW",
68
+ "Wx::ART_UNDO",
69
+ "Wx::ART_REDO",
70
+ "Wx::ART_QUIT",
71
+ "Wx::ART_FIND",
72
+ "Wx::ART_FIND_AND_REPLACE",
73
+ ]
74
+
75
+ class MyArtProvider < Wx::ArtProvider
76
+ def initialize(log)
77
+ super()
78
+ @log = log
79
+ end
80
+
81
+ # Custom art providers must supply this method
82
+
83
+ def create_bitmap(artid, client, size)
84
+ # You can do anything here you want, such as using the same
85
+ # image for any size, any client, etc., or using specific
86
+ # images for specific sizes, whatever...
87
+
88
+ bmp = nil
89
+ # use this one for all 48x48 images
90
+ case size.get_width
91
+ when 48
92
+ bmp = make_bitmap("wxwin48x48.png")
93
+ when 32
94
+ bmp = make_bitmap("wxwin32x32.png")
95
+ when 16
96
+ # be more specific for these
97
+ if artid == Wx::ART_ADD_BOOKMARK
98
+ bmp = make_bitmap("smiles.bmp")
99
+ else
100
+ bmp = make_bitmap("wxwin16x16.png")
101
+ end
102
+ end
103
+ if bmp
104
+ @log.write_text("MyArtProvider: providing #{artid}:#{client} at #{size.x}x#{size.y}")
105
+ end
106
+ bmp
107
+ end
108
+
109
+ def make_bitmap(f)
110
+ f_path = File.join(File.dirname(__FILE__), 'icons', f)
111
+ Wx::Bitmap.new(Wx::Image.new(f_path))
112
+ end
113
+ end
114
+
115
+ class TestPanel < Wx::Panel
116
+ def initialize(parent, log)
117
+ super(parent, -1, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
118
+ @log = log
119
+
120
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
121
+
122
+ title = Wx::StaticText.new(self, -1, "ArtProvider")
123
+ title.set_font(Wx::Font.new(18, Wx::SWISS, Wx::NORMAL, Wx::BOLD))
124
+ sizer.add(title, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
125
+
126
+ line = Wx::StaticLine.new(self, -1, Wx::DEFAULT_POSITION, Wx::Size.new(20,-1), Wx::LI_HORIZONTAL)
127
+ sizer.add(line, 0, Wx::GROW|Wx::ALIGN_CENTER_VERTICAL|Wx::ALL, 5)
128
+
129
+ fgs = Wx::FlexGridSizer.new(0, 3, 10, 10)
130
+
131
+ combo = Wx::ComboBox.new(self, -1, "", Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
132
+ ArtClients, Wx::CB_DROPDOWN|Wx::CB_READONLY)
133
+ fgs.add(combo, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
134
+ evt_combobox(combo.get_id) { |event| on_select_client(event) }
135
+ combo.set_selection(0)
136
+
137
+ combo = Wx::ComboBox.new(self, -1, "", Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
138
+ ArtIDs, Wx::CB_DROPDOWN|Wx::CB_READONLY)
139
+ fgs.add(combo, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
140
+ evt_combobox(combo.get_id) { |event| on_select_id(event) }
141
+ combo.set_selection(0)
142
+
143
+ # Custom provider not currently working
144
+ cb = Wx::CheckBox.new(self, -1, "Use custom provider")
145
+ fgs.add(cb, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
146
+ evt_checkbox(cb.get_id) { |event| on_use_custom(event) }
147
+ # One extra spacer to account for missing checkbox
148
+ # fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
149
+
150
+ fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
151
+ fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
152
+ fgs.add(10, 10, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
153
+
154
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
155
+ bmp = Wx::Bitmap.new(16,16)
156
+ @bmp16 = Wx::StaticBitmap.new(self, -1, bmp, Wx::DEFAULT_POSITION)
157
+ box.add(@bmp16, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
158
+ text = Wx::StaticText.new(self, -1, "16x16")
159
+ box.add(text, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
160
+
161
+ fgs.add(box, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
162
+
163
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
164
+ bmp = Wx::Bitmap.new(32,32)
165
+ @bmp32 = Wx::StaticBitmap.new(self, -1, bmp, Wx::DEFAULT_POSITION)
166
+ box.add(@bmp32, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
167
+ text = Wx::StaticText.new(self, -1, "32x32")
168
+ box.add(text, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
169
+
170
+ fgs.add(box, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
171
+
172
+ box = Wx::BoxSizer.new(Wx::VERTICAL)
173
+ bmp = Wx::Bitmap.new(48,48)
174
+ @bmp48 = Wx::StaticBitmap.new(self, -1, bmp, Wx::DEFAULT_POSITION)
175
+ box.add(@bmp48, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
176
+ text = Wx::StaticText.new(self, -1, "48x48")
177
+ box.add(text, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
178
+
179
+ fgs.add(box, 0, Wx::ALIGN_CENTRE|Wx::ALL, 5)
180
+ sizer.add(fgs, 0, Wx::ALL, 5)
181
+ set_sizer(sizer)
182
+
183
+ @client = eval(ArtClients[0])
184
+ @artid = eval(ArtIDs[0])
185
+ get_art
186
+ end
187
+
188
+ def on_select_client(evt)
189
+ @log.write_text("on_select_client")
190
+ @client = eval(evt.get_string)
191
+ get_art
192
+ end
193
+
194
+
195
+ def on_select_id(evt)
196
+ @log.write_text("on_select_id")
197
+ @artid = eval(evt.get_string)
198
+ get_art
199
+ end
200
+
201
+
202
+ def on_use_custom(evt)
203
+ if evt.is_checked
204
+ @log.write_text("Images will now be provided by
205
+ MyArtProvider")
206
+ Wx::ArtProvider.push( MyArtProvider.new(@log) )
207
+
208
+ else
209
+ @log.write_text("MyArtProvider deactivated\n")
210
+ Wx::ArtProvider.pop
211
+ end
212
+ get_art
213
+ end
214
+
215
+
216
+ def get_art
217
+ @log.write_text("Getting art for #{@client}:#{@artid}")
218
+
219
+ bmp = Wx::ArtProvider.get_bitmap(@artid, @client, Wx::Size.new(16,16))
220
+
221
+ if not bmp.is_ok
222
+ bmp = Wx::Bitmap.new(16,16)
223
+ clear_bmp(bmp)
224
+ end
225
+
226
+ @bmp16.set_bitmap(bmp)
227
+
228
+ bmp = Wx::ArtProvider::get_bitmap(@artid, @client, Wx::Size.new(32,32))
229
+
230
+ if not bmp.is_ok
231
+ bmp = Wx::Bitmap.new(32,32)
232
+ clear_bmp(bmp)
233
+ end
234
+
235
+ @bmp32.set_bitmap(bmp)
236
+
237
+ bmp = Wx::ArtProvider::get_bitmap(@artid, @client, Wx::Size.new(48,48))
238
+
239
+ if not bmp.is_ok
240
+ bmp = Wx::Bitmap.new(48,48)
241
+ clear_bmp(bmp)
242
+ end
243
+
244
+ @bmp48.set_bitmap(bmp)
245
+ end
246
+
247
+
248
+ def clear_bmp(bmp)
249
+ dc = Wx::MemoryDC.new
250
+ dc.select_object(bmp)
251
+ dc.set_background(Wx::WHITE_BRUSH)
252
+ dc.clear
253
+ end
254
+ end
255
+
256
+ module Demo
257
+
258
+ def Demo.run(frame, nb, log)
259
+ win = TestPanel.new(nb, log)
260
+ return win
261
+ end
262
+
263
+ def Demo.overview
264
+ return 'Wx::ArtProvider class can be used to customize the look of wxWindows
265
+ applications. When wxWindows internal classes need to display an icon
266
+ or a bitmap (e.g. in the standard file dialog), it does not use a
267
+ hard-coded resource but asks Wx::ArtProvider for it instead. This way
268
+ the users can plug in their own Wx::ArtProvider class and easily replace
269
+ standard art with his/her own version. It is easy thing to do: all
270
+ that is needed is to derive a class from Wx::ArtProvider, override its
271
+ CreateBitmap method and register the provider with
272
+ Wx::ArtProvider.push_provider.
273
+
274
+ This class can also be used to get the platform native icons as
275
+ provided by Wx::ArtProvider.get_bitmap or Wx::ArtProvider.get_icon methods.'
276
+
277
+ end
278
+
279
+ end
280
+
281
+ if __FILE__ == $0
282
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
283
+ load run_solo_lib
284
+ run File.basename($0)
285
+ end
@@ -0,0 +1,64 @@
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
+ bmp_file = File.join( File.dirname(__FILE__), 'icons', 'test2.bmp')
22
+ bmp = Wx::Bitmap.new(bmp_file, Wx::BITMAP_TYPE_BMP)
23
+ mask = Wx::Mask.new(bmp, Wx::BLUE)
24
+
25
+ bmp.set_mask(mask)
26
+ b = Wx::BitmapButton.new(self, 10, bmp, Wx::Point.new(20,20), Wx::Size.new(bmp.get_width + 10, bmp.get_height + 10))
27
+ evt_button(10) {|event| on_click(event)}
28
+ b.set_tool_tip('This is a bitmap button.')
29
+
30
+ b = Wx::BitmapButton.new(self, 20, bmp, Wx::Point.new(20,120), Wx::Size.new(bmp.get_width + 10, bmp.get_height + 10), Wx::NO_BORDER)
31
+ evt_button(20) {|event| on_click(event)}
32
+ b.set_tool_tip("This is a Bitmap button with\nWx::NO_BORDER style.")
33
+
34
+ bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiles.bmp')
35
+ bmp = Wx::Bitmap.new(bmp_file, Wx::BITMAP_TYPE_BMP)
36
+ b.set_bitmap_selected(bmp)
37
+
38
+ end
39
+
40
+ def on_click(event)
41
+ @log.write_text("Click! %d" % event.get_id())
42
+ end
43
+
44
+
45
+ end
46
+
47
+ module Demo
48
+
49
+ def Demo.run(frame, nb, log)
50
+ win = TestPanel.new(nb, log)
51
+ return win
52
+ end
53
+
54
+ def Demo.overview
55
+ return "A BitmapButton control displays a bitmap. It can have a separate bitmap for each button state: normal, selected, disabled.\n\nThe bitmaps to be displayed should have a small number of colours, such as 16, to avoid palette problems.\n\nA bitmap can be derived from most image formats using the Wx::Image class."
56
+ end
57
+
58
+ end
59
+
60
+ if __FILE__ == $0
61
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
62
+ load run_solo_lib
63
+ run File.basename($0)
64
+ end
@@ -0,0 +1,66 @@
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, Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE, Wx::NO_FULL_REPAINT_ON_RESIZE)
17
+ @log = log
18
+
19
+ b = Wx::Button.new(self, 10, "Hello", Wx::Point.new(20,20))
20
+ evt_button(10) {|event| on_click(event)}
21
+ b.set_background_colour(Wx::BLUE)
22
+ b.set_foreground_colour(Wx::WHITE)
23
+ b.set_default()
24
+
25
+ b = Wx::Button.new(self, 20, "HELLO AGAIN!", Wx::Point.new(20,60), Wx::Size.new(120,45))
26
+ evt_button(20) {|event| on_click(event)}
27
+ b.set_tool_tip("This is a Hello button...")
28
+
29
+ bmp_file = File.join( File.dirname(__FILE__), 'icons', 'test2.bmp')
30
+ bmp = Wx::Bitmap.new(bmp_file, Wx::BITMAP_TYPE_BMP)
31
+ bmp_size = Wx::Size.new(bmp.get_width + 10, bmp.get_height + 10)
32
+
33
+ #mask = Wx::MaskColour.new(bmp, Wx::BLUE)
34
+ #bmp.set_mask(mask)
35
+
36
+ Wx::BitmapButton.new(self, 30, bmp,
37
+ Wx::Point.new(160, 20), bmp_size)
38
+ evt_button(30) {|event| on_click(event)}
39
+
40
+ end
41
+
42
+ def on_click(event)
43
+ @log.write_text("Click! %d" % event.get_id())
44
+ end
45
+
46
+
47
+ end
48
+
49
+ module Demo
50
+
51
+ def Demo.run(frame, nb, log)
52
+ win = TestPanel.new(nb, log)
53
+ return win
54
+ end
55
+
56
+ def Demo.overview
57
+ return "A button is a control that contains a text string or a bitmap and cab be placed on nearly any kind of window."
58
+ end
59
+
60
+ end
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,72 @@
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
+ require 'date'
14
+
15
+ class TestPanel < Wx::Panel
16
+ def initialize(parent, id, log)
17
+ super(parent, id)
18
+ @log = log
19
+
20
+ date = DateTime.now
21
+ cal = Wx::CalendarCtrl.new(self, -1, date, Wx::Point.new(25,50), Wx::DEFAULT_SIZE,
22
+ Wx::CAL_SHOW_HOLIDAYS | Wx::CAL_SUNDAY_FIRST | Wx::CAL_SEQUENTIAL_MONTH_SELECTION)
23
+
24
+ evt_calendar(cal.get_id()) {|event| on_cal_selected(event)}
25
+
26
+ #b = Wx::Button.new(self, -1, "Destroy the Calendar", Wx::Point.new(250,50))
27
+ #evt_button(b.get_id()) {|event| on_button(event)}
28
+ @cal = cal
29
+
30
+ # Set up control to display a set of holidays:
31
+ evt_calendar_month(cal.get_id()) {|event| on_change_month(event)}
32
+ @holidays = [[1,1], [10,31], [12,25]] #(these don't move around)
33
+
34
+ end
35
+
36
+ #def on_button(event)
37
+ # @cal.destroy()
38
+ # @cal = nil
39
+ #end
40
+
41
+ def on_cal_selected(event)
42
+ @log.write_text("on_cal_selected: " + event.get_date().strftime("%F"))
43
+ end
44
+
45
+ # missing get_current_month() method
46
+ def on_change_month(event)
47
+ #~ cur_month = @cal.get_date().get_current_month() + 1
48
+ #~ @holidays.each do |date|
49
+ #~ if date[0] == cur_month
50
+ #~ @cal.set_holiday(date[1])
51
+ #~ end
52
+ #~ end
53
+ event.skip()
54
+ end
55
+ end
56
+
57
+ module Demo
58
+ def Demo.run(frame, nb, log)
59
+ win = TestPanel.new(nb, -1, log)
60
+ return win
61
+ end
62
+
63
+ def Demo.overview
64
+ return "The calendar control allows the user to pick a date interactively. For this, it displays a window containing several parts: the control to pick the month and the year at the top (either or both of them may be disabled) and a month area below them which shows all the days in the month. The user can move the current selection using the keyboard and select the date (generating EVT_CALENDAR event) by pressing <Return> or double clicking it."
65
+ end
66
+ end
67
+
68
+ if __FILE__ == $0
69
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
70
+ load run_solo_lib
71
+ run File.basename($0)
72
+ end