wxruby 1.9.0-powerpc-darwin8.10.0

Sign up to get free protection for your applications and to get access to all the features.
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,59 @@
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 ScrolledMessageDialog < Wx::Dialog
15
+ def initialize(parent, msg, caption,
16
+ pos = Wx::DEFAULT_POSITION,
17
+ size = Wx::Size.new(500,300) )
18
+ super(parent, -1, caption, pos, size)
19
+ x,y = pos.x, pos.y
20
+ if x == -1 and y == -1
21
+ center_on_screen(Wx::BOTH)
22
+ end
23
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
24
+ text = Wx::TextCtrl.new(self, -1, msg,
25
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
26
+ Wx::TE_MULTILINE|Wx::TE_READONLY)
27
+
28
+ sizer.add(text, 1, Wx::EXPAND|Wx::ALL, 5)
29
+
30
+ button_sizer = Wx::StdDialogButtonSizer.new
31
+ button_sizer.add_button( Wx::Button.new(self, Wx::ID_OK, "OK") )
32
+ button_sizer.realize
33
+
34
+ sizer.add(button_sizer, 0, Wx::EXPAND|Wx::ALL, 5)
35
+
36
+ set_sizer(sizer)
37
+ layout
38
+ end
39
+ end
40
+
41
+ module Demo
42
+ def Demo.run(frame, nb, log)
43
+ f = open(__FILE__, "r")
44
+ msg = f.read()
45
+ dlg = ScrolledMessageDialog.new(frame, msg, "message test")
46
+ dlg.show_modal()
47
+ end
48
+
49
+ def Demo.overview
50
+ return "A simple ruby example of a custom dialog displaying a " +
51
+ "long message in a scrolled TextCtrl"
52
+ end
53
+ end
54
+
55
+ if __FILE__ == $0
56
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
57
+ load run_solo_lib
58
+ run File.basename($0)
59
+ end
@@ -0,0 +1,196 @@
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
+ #$BUFFERED = 0 #Wx::BufferedDC not yet implemented
15
+
16
+ class MyCanvas < Wx::ScrolledWindow
17
+ def initialize(parent, id=-1, size=Wx::DEFAULT_SIZE)
18
+ super(parent, -1, Wx::Point.new(0,0), size, Wx::SUNKEN_BORDER)
19
+ @lines = []
20
+ @maxWidth = 1000
21
+ @maxHeight = 1000
22
+ @x = @y = 0
23
+ @curLine = []
24
+ @drawing = false
25
+
26
+ set_background_colour(Wx::WHITE)
27
+
28
+ set_cursor(Wx::Cursor.new(Wx::CURSOR_PENCIL))
29
+ bmp_file = File.join(File.dirname(__FILE__), 'icons', 'test2.xpm')
30
+ @bmp = Wx::Bitmap.new(bmp_file)
31
+
32
+
33
+ set_scrollbars(20, 20, @maxWidth / 20, @maxHeight / 20, 0, 0, true)
34
+
35
+ evt_left_down {|event| on_left_button_event_down(event)}
36
+ evt_left_up {|event| on_left_button_event_up(event)}
37
+ evt_motion {|event| on_left_button_event_motion(event)}
38
+ evt_paint { on_paint }
39
+ #evt_mousewheel {|event| on_wheel(event)}
40
+ end
41
+
42
+ def on_paint
43
+ paint { | dc | do_drawing(dc) }
44
+ end
45
+
46
+ def do_drawing(dc, printing=false)
47
+ # Reset the origin co-ordinates of the DC to reflect current scrolling
48
+ do_prepare_dc(dc)
49
+ dc.set_pen(Wx::Pen.new("RED", 1, Wx::SOLID))
50
+ dc.draw_rectangle(5,5,50,50)
51
+
52
+ dc.set_brush(Wx::LIGHT_GREY_BRUSH)
53
+ dc.set_pen(Wx::Pen.new("BLUE", 4, Wx::SOLID))
54
+ dc.draw_rectangle(15,15,50,50)
55
+
56
+ dc.set_font(Wx::Font.new(14, Wx::SWISS, Wx::NORMAL, Wx::NORMAL))
57
+ dc.set_text_foreground(Wx::Colour.new(0xFF, 0x20, 0xFF))
58
+ te = dc.get_text_extent("Hello World")
59
+ dc.draw_text("Hello World", 60, 65)
60
+
61
+ dc.set_pen(Wx::Pen.new("VIOLET", 4, Wx::SOLID))
62
+ dc.draw_line(5, 65+te[1], 60 + te[0], 65 + te[1])
63
+
64
+ lst = [Wx::Point.new(100,110), Wx::Point.new(150, 110), Wx::Point.new(150, 160), Wx::Point.new(100, 160)]
65
+ dc.draw_lines(lst, -60)
66
+ dc.set_pen(Wx::GREY_PEN)
67
+ dc.draw_polygon(lst, 75)
68
+ dc.set_pen(Wx::GREEN_PEN)
69
+ dc.draw_spline(lst << Wx::Point.new(100,100))
70
+
71
+ dc.draw_bitmap(@bmp, 200, 20, true)
72
+ dc.set_text_foreground(Wx::Colour.new(0, 0xFF, 0x80))
73
+ dc.draw_text("a bitmap", 200,85)
74
+
75
+ font = Wx::Font.new(14, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
76
+ dc.set_font(font)
77
+ dc.set_text_foreground(Wx::BLACK)
78
+ 0.step(360, 45) {|number| dc.draw_rotated_text("Rotated text...", 300, 300, number)}
79
+
80
+ dc.set_pen(Wx::TRANSPARENT_PEN)
81
+ dc.set_brush(Wx::BLUE_BRUSH)
82
+ dc.draw_rectangle(50, 500, 50, 50)
83
+ dc.draw_rectangle(100, 500, 50, 50)
84
+
85
+ dc.set_pen(Wx::Pen.new("RED", 1, Wx::SOLID))
86
+ dc.draw_elliptic_arc(200, 500, 50, 75, 0, 90)
87
+
88
+ if not printing
89
+ # This has troubles when used on a print preview in wxGTK,
90
+ # probably something to do with the pen styles and the scaling
91
+ # it does...
92
+ y = 20
93
+ [Wx::DOT, Wx::LONG_DASH, Wx::SHORT_DASH, Wx::DOT_DASH, Wx::USER_DASH].each do |style|
94
+ pen = Wx::Pen.new("DARK ORCHID", 1, style)
95
+ if style == Wx::USER_DASH
96
+ pen.set_cap(Wx::CAP_BUTT)
97
+ pen.set_dashes([1,2])
98
+ pen.set_colour("RED")
99
+ end
100
+ dc.set_pen(pen)
101
+ dc.draw_line(300, y, 400, y)
102
+ y += 10
103
+ end
104
+ end
105
+ dc.set_brush(Wx::TRANSPARENT_BRUSH)
106
+ dc.set_pen(Wx::Pen.new(Wx::Colour.new(0xFF, 0x20, 0xFF), 1, Wx::SOLID))
107
+ dc.draw_rectangle(450, 50, 100, 100)
108
+ old_pen = dc.get_pen()
109
+ new_pen = Wx::Pen.new("BLACK", 5, Wx::SOLID)
110
+ dc.set_pen(new_pen)
111
+ dc.draw_rectangle(470, 70, 60, 60)
112
+ dc.set_pen(old_pen)
113
+ dc.draw_rectangle(490, 90, 20, 20)
114
+
115
+ draw_saved_lines(dc)
116
+ end
117
+
118
+ def draw_saved_lines(dc)
119
+ dc.set_pen(Wx::Pen.new("MEDIUM FOREST GREEN", 4, Wx::SOLID))
120
+ @lines.each do |line|
121
+ line.each do |coords|
122
+ coords.flatten!()
123
+ dc.draw_line(coords[0], coords[1], coords[2], coords[3])
124
+ end
125
+ end
126
+ end
127
+
128
+ def set_XY(event)
129
+ @x, @y = convert_event_coords(event)
130
+ end
131
+
132
+ def convert_event_coords(event)
133
+ xView, yView = get_view_start()
134
+ xDelta, yDelta = get_scroll_pixels_per_unit()
135
+ return event.get_x() + (xView * xDelta), event.get_y() + (yView * yDelta)
136
+ end
137
+
138
+ def on_left_button_event_down(event)
139
+ if event.left_is_down() and !@drawing
140
+ set_focus()
141
+ set_XY(event)
142
+ @curLine = []
143
+ capture_mouse()
144
+ @drawing = true
145
+ end
146
+ end
147
+
148
+ def on_left_button_event_up(event)
149
+ if !event.left_is_down() and @drawing
150
+ @lines.push(@curLine)
151
+ @curLine = []
152
+ release_mouse()
153
+ @drawing = false
154
+ end
155
+ end
156
+
157
+ def on_left_button_event_motion(event)
158
+ if event.left_is_down() and @drawing
159
+ # if $BUFFERED
160
+ # # If doing buffered drawing, create the buffered DC, giving it
161
+ # # it a real DC to blit to when done.
162
+ # cdc = Wx::ClientDC.new(self)
163
+ # dc = Wx::BufferedDC.new(cdc, @buffer)
164
+ # else
165
+ # dc = Wx::ClientDC.new(self)
166
+ # end
167
+
168
+ paint do | dc |
169
+ dc.set_pen(Wx::Pen.new("MEDIUM FOREST GREEN", 4, Wx::SOLID))
170
+ coords = [@x, @y] + convert_event_coords(event)
171
+ @curLine.push(coords)
172
+ coords.flatten!()
173
+ dc.draw_line(coords[0], coords[1], coords[2], coords[3])
174
+ set_XY(event)
175
+ end
176
+ end
177
+ end
178
+
179
+ end
180
+
181
+ module Demo
182
+ def Demo.run(frame, nb, log)
183
+ win = MyCanvas.new(nb, log)
184
+ return win
185
+ end
186
+
187
+ def Demo.overview
188
+ return "The wxScrolledWindow class manages scrolling for its client area, transforming the coordinates according to the scrollbar positions, and setting the scroll positions, thumb sizes and ranges according to the area in view."
189
+ end
190
+ end
191
+
192
+ if __FILE__ == $0
193
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
194
+ load run_solo_lib
195
+ run File.basename($0)
196
+ end
@@ -0,0 +1,35 @@
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::SingleChoiceDialog.new(frame, "Test Single Choice", "The Caption",
17
+ %w(zero one two three four five six seven eight))
18
+ #Wx::CHOICEDLG_STYLE)
19
+ if dlg.show_modal() == Wx::ID_OK
20
+ log.write_text("You selected: " + dlg.get_string_selection() + "\n")
21
+ end
22
+ dlg.destroy()
23
+ return nil
24
+ end
25
+
26
+ def Demo.overview
27
+ return "This class represents a dialog that shows a list of strings, and allows the user to select one. Double-clicking on a list item is equivalent to single-clicking and then pressing OK."
28
+ end
29
+ end
30
+
31
+ if __FILE__ == $0
32
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
33
+ load run_solo_lib
34
+ run File.basename($0)
35
+ end
@@ -0,0 +1,44 @@
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 is a Wx::Slider", Wx::Point.new(45,15))
21
+
22
+ slider = Wx::Slider.new(self, 100, 25, 1, 100, Wx::Point.new(30,60), Wx::Size.new(250,-1),
23
+ Wx::SL_HORIZONTAL | Wx::SL_AUTOTICKS | Wx::SL_LABELS)
24
+ slider.set_tick_freq(5,1)
25
+ end
26
+ end
27
+
28
+ module Demo
29
+ def Demo.run(frame,nb,log)
30
+ win = TestPanel.new(nb, log)
31
+ return win
32
+ end
33
+
34
+ def Demo.overview
35
+ "A slider is a control with a handle which can be pulled back and forth to change the value."
36
+ end
37
+ end
38
+
39
+
40
+ if __FILE__ == $0
41
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
42
+ load run_solo_lib
43
+ run File.basename($0)
44
+ end
@@ -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 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 uses the wxSpinButton control.", Wx::Point.new(45,15))
21
+
22
+ @text = Wx::TextCtrl.new(self, -1, "1", Wx::Point.new(30,50), Wx::Size.new(60,-1))
23
+ h = @text.get_size().get_height()
24
+ @spin = Wx::SpinButton.new(self, 20, Wx::Point.new(92,50), Wx::Size.new(h,h), Wx::SP_VERTICAL)
25
+ @spin.set_range(1, 100)
26
+ @spin.set_value(1)
27
+
28
+ evt_spin(@spin.get_id()) {|event| on_spin(event)}
29
+ end
30
+
31
+ def on_spin(event)
32
+ @text.set_value(event.get_position().to_s())
33
+ end
34
+ end
35
+
36
+ module Demo
37
+ def Demo.run(frame,nb,log)
38
+ win = TestPanel.new(nb, log)
39
+ return win
40
+ end
41
+
42
+ def Demo.overview
43
+ "A wxSpinButton has two small up and down (or left and right) arrow buttons. It is often used next to a text control for increment and decrementing a value. Portable programs should try to use wxSpinCtrl instead as wxSpinButton is not implemented for all platforms (Win32 and GTK only currently)."
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,53 @@
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,
21
+ "This example uses the Wx::SpinCtrl control.",
22
+ Wx::Point.new(45,15))
23
+
24
+ sc = Wx::SpinCtrl.new(self, -1, "",
25
+ Wx::Point.new(30, 50), Wx::Size.new(80, -1))
26
+ sc.set_range(1,100)
27
+ sc.set_value(5)
28
+ evt_spinctrl(sc.get_id) { | e | on_spinctrl(e) }
29
+ # sc.enable(false)
30
+ end
31
+
32
+ def on_spinctrl(evt)
33
+ @log.write_text("spintctrl - new position #{evt.get_position}")
34
+ end
35
+ end
36
+
37
+ module Demo
38
+ def Demo.run(frame,nb,log)
39
+ win = TestPanel.new(nb, log)
40
+ return win
41
+ end
42
+
43
+ def Demo.overview
44
+ "Wx::SpinCtrl combines Wx::TextCtrl and Wx::SpinButton in one control."
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,65 @@
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 MySplitter < Wx::SplitterWindow
15
+ def initialize(parent, id, log)
16
+ super(parent, id)
17
+ @log = log
18
+
19
+ evt_splitter_sash_pos_changed(self.get_id()) {|event| on_sash_changed(event)}
20
+ evt_splitter_sash_pos_changing(self.get_id()) {|event| on_sash_changing(event)}
21
+ end
22
+
23
+ def on_sash_changed(event)
24
+ @log.write_text("sash changed to: " + event.get_sash_position().to_s())
25
+ # uncomment this to not allow the change
26
+ #evt.set_sash_position(-1)
27
+ end
28
+
29
+ def on_sash_changing(event)
30
+ @log.write_text("sash changing to: " + event.get_sash_position().to_s())
31
+ # uncomment this to not allow the change
32
+ #evt.set_sash_position(-1)
33
+
34
+ end
35
+ end
36
+
37
+ module Demo
38
+ def Demo.run(frame,nb,log)
39
+ splitter = MySplitter.new(nb, -1, log)
40
+
41
+ p1 = Wx::Window.new(splitter, -1)
42
+ p1.set_background_colour(Wx::RED)
43
+ Wx::StaticText.new(p1, -1, "Panel One", Wx::Point.new(5,5)).set_background_colour(Wx::RED)
44
+
45
+ p2 = Wx::Window.new(splitter, -1)
46
+ p2.set_background_colour(Wx::BLUE)
47
+ Wx::StaticText.new(p2, -1, "Panel Two", Wx::Point.new(5,5)).set_background_colour(Wx::BLUE)
48
+
49
+ splitter.set_minimum_pane_size(20)
50
+ splitter.split_vertically(p1, p2, 100)
51
+
52
+ return splitter
53
+ end
54
+
55
+ def Demo.overview
56
+ "This class manages up to two subwindows. The current view can be split into two programmatically (perhaps from a menu command), and unsplit either programmatically or via the wxSplitterWindow user interface."
57
+ end
58
+ end
59
+
60
+
61
+ if __FILE__ == $0
62
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
63
+ load run_solo_lib
64
+ run File.basename($0)
65
+ end