wxruby-ruby19 1.9.8-x86-darwin-9 → 1.9.10-x86-darwin-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. data/LICENSE +53 -0
  2. data/README +297 -0
  3. data/lib/wx.rb +2 -2
  4. data/lib/wx/accessors.rb +7 -1
  5. data/lib/wx/classes/app.rb +10 -4
  6. data/lib/wx/classes/bitmap.rb +29 -1
  7. data/lib/wx/classes/clipboard.rb +19 -3
  8. data/lib/wx/classes/colour.rb +6 -4
  9. data/lib/wx/classes/data_object.rb +14 -0
  10. data/lib/wx/classes/data_object_simple.rb +6 -0
  11. data/lib/wx/classes/dataformat.rb +23 -0
  12. data/lib/wx/classes/evthandler.rb +79 -4
  13. data/lib/wx/classes/genericdirctrl.rb +36 -0
  14. data/lib/wx/classes/grid.rb +8 -0
  15. data/lib/wx/classes/hboxsizer.rb +6 -0
  16. data/lib/wx/classes/icon.rb +12 -1
  17. data/lib/wx/classes/image.rb +13 -1
  18. data/lib/wx/classes/listctrl.rb +12 -0
  19. data/lib/wx/classes/point.rb +8 -0
  20. data/lib/wx/classes/rect.rb +10 -1
  21. data/lib/wx/classes/richtextctrl.rb +63 -0
  22. data/lib/wx/classes/size.rb +9 -0
  23. data/lib/wx/classes/sizer.rb +18 -3
  24. data/lib/wx/classes/standardpaths.rb +9 -0
  25. data/lib/wx/classes/texturlevent.rb +14 -2
  26. data/lib/wx/classes/toolbar.rb +4 -6
  27. data/lib/wx/classes/vboxsizer.rb +6 -0
  28. data/lib/wx/classes/window.rb +7 -0
  29. data/lib/wx/classes/xmlresource.rb +17 -0
  30. data/lib/wx/helpers.rb +16 -1
  31. data/lib/wx/keyword_ctors.rb +3 -2
  32. data/lib/wx/keyword_defs.rb +56 -5
  33. data/lib/wx/version.rb +1 -1
  34. data/lib/wxruby2.bundle +0 -0
  35. data/samples/SAMPLES-LICENSE.TXT +18 -0
  36. data/samples/aui/aui.rb +1356 -0
  37. data/samples/bigdemo/About.rbw +39 -0
  38. data/samples/bigdemo/ColorPanel.rbw +23 -0
  39. data/samples/bigdemo/GridSimple.rbw +78 -0
  40. data/samples/bigdemo/MDIDemo.rbw +57 -0
  41. data/samples/bigdemo/PopupMenu.rbw +149 -0
  42. data/samples/bigdemo/ShapedWindow.rbw +131 -0
  43. data/samples/bigdemo/Sizers.rbw +543 -0
  44. data/samples/bigdemo/bigdemo.rb +823 -0
  45. data/samples/bigdemo/demoTemplate.rbw +33 -0
  46. data/samples/bigdemo/helpfile.htb +0 -0
  47. data/samples/bigdemo/icons/Test 015.jpg +0 -0
  48. data/samples/bigdemo/icons/Test 015.png +0 -0
  49. data/samples/bigdemo/icons/choice.bmp +0 -0
  50. data/samples/bigdemo/icons/choice.xpm +27 -0
  51. data/samples/bigdemo/icons/combo.bmp +0 -0
  52. data/samples/bigdemo/icons/combo.xpm +27 -0
  53. data/samples/bigdemo/icons/copy.xpm +25 -0
  54. data/samples/bigdemo/icons/cut.xpm +24 -0
  55. data/samples/bigdemo/icons/gauge.bmp +0 -0
  56. data/samples/bigdemo/icons/gauge.xpm +27 -0
  57. data/samples/bigdemo/icons/help.xpm +25 -0
  58. data/samples/bigdemo/icons/list.bmp +0 -0
  59. data/samples/bigdemo/icons/list.xpm +27 -0
  60. data/samples/bigdemo/icons/mondrian.ico +0 -0
  61. data/samples/bigdemo/icons/mondrian.xpm +44 -0
  62. data/samples/bigdemo/icons/new.xpm +24 -0
  63. data/samples/bigdemo/icons/ogl.ico +0 -0
  64. data/samples/bigdemo/icons/ogl.xpm +45 -0
  65. data/samples/bigdemo/icons/open.xpm +26 -0
  66. data/samples/bigdemo/icons/paste.bmp +0 -0
  67. data/samples/bigdemo/icons/paste.xpm +38 -0
  68. data/samples/bigdemo/icons/pointy.png +0 -0
  69. data/samples/bigdemo/icons/preview.xpm +26 -0
  70. data/samples/bigdemo/icons/print.xpm +26 -0
  71. data/samples/bigdemo/icons/radio.bmp +0 -0
  72. data/samples/bigdemo/icons/radio.xpm +27 -0
  73. data/samples/bigdemo/icons/robert.xpm +415 -0
  74. data/samples/bigdemo/icons/ruby.png +0 -0
  75. data/samples/bigdemo/icons/sashtest.ico +0 -0
  76. data/samples/bigdemo/icons/save.xpm +25 -0
  77. data/samples/bigdemo/icons/smiles.bmp +0 -0
  78. data/samples/bigdemo/icons/smiles.xpm +39 -0
  79. data/samples/bigdemo/icons/smiley.ico +0 -0
  80. data/samples/bigdemo/icons/smiley.xpm +42 -0
  81. data/samples/bigdemo/icons/stattext.xpm +24 -0
  82. data/samples/bigdemo/icons/test2.bmp +0 -0
  83. data/samples/bigdemo/icons/test2.png +0 -0
  84. data/samples/bigdemo/icons/test2.xpm +79 -0
  85. data/samples/bigdemo/icons/text.bmp +0 -0
  86. data/samples/bigdemo/icons/text.xpm +27 -0
  87. data/samples/bigdemo/icons/tog1.bmp +0 -0
  88. data/samples/bigdemo/icons/tog1.xpm +38 -0
  89. data/samples/bigdemo/icons/tog2.bmp +0 -0
  90. data/samples/bigdemo/icons/tog2.xpm +38 -0
  91. data/samples/bigdemo/icons/wxwin.ico +0 -0
  92. data/samples/bigdemo/icons/wxwin16x16.png +0 -0
  93. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
  94. data/samples/bigdemo/icons/wxwin32x32.png +0 -0
  95. data/samples/bigdemo/icons/wxwin48x48.png +0 -0
  96. data/samples/bigdemo/run.rb +90 -0
  97. data/samples/bigdemo/tips.txt +7 -0
  98. data/samples/bigdemo/utils.rb +12 -0
  99. data/samples/bigdemo/wxArtProvider.rbw +281 -0
  100. data/samples/bigdemo/wxBitmapButton.rbw +65 -0
  101. data/samples/bigdemo/wxButton.rbw +64 -0
  102. data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
  103. data/samples/bigdemo/wxCheckBox.rbw +50 -0
  104. data/samples/bigdemo/wxCheckListBox.rbw +65 -0
  105. data/samples/bigdemo/wxChoice.rbw +47 -0
  106. data/samples/bigdemo/wxChoicebook.rbw +78 -0
  107. data/samples/bigdemo/wxColourDialog.rbw +31 -0
  108. data/samples/bigdemo/wxComboBox.rbw +77 -0
  109. data/samples/bigdemo/wxCursor.rbw +136 -0
  110. data/samples/bigdemo/wxDialog.rbw +74 -0
  111. data/samples/bigdemo/wxDirDialog.rbw +29 -0
  112. data/samples/bigdemo/wxDragImage.rbw +70 -0
  113. data/samples/bigdemo/wxFileDialog.rbw +37 -0
  114. data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
  115. data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
  116. data/samples/bigdemo/wxFontDialog.rbw +173 -0
  117. data/samples/bigdemo/wxFrame.rbw +53 -0
  118. data/samples/bigdemo/wxGauge.rbw +71 -0
  119. data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
  120. data/samples/bigdemo/wxGrid.rbw +66 -0
  121. data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
  122. data/samples/bigdemo/wxListBox.rbw +140 -0
  123. data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
  124. data/samples/bigdemo/wxMDIWindows.rbw +50 -0
  125. data/samples/bigdemo/wxMenu.rbw +236 -0
  126. data/samples/bigdemo/wxMessageDialog.rbw +27 -0
  127. data/samples/bigdemo/wxMiniFrame.rbw +70 -0
  128. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
  129. data/samples/bigdemo/wxNotebook.rbw +136 -0
  130. data/samples/bigdemo/wxProgressDialog.rbw +43 -0
  131. data/samples/bigdemo/wxRadioBox.rbw +72 -0
  132. data/samples/bigdemo/wxRadioButton.rbw +125 -0
  133. data/samples/bigdemo/wxSashWindow.rbw +141 -0
  134. data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
  135. data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
  136. data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
  137. data/samples/bigdemo/wxSlider.rbw +42 -0
  138. data/samples/bigdemo/wxSpinButton.rbw +50 -0
  139. data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
  140. data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
  141. data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
  142. data/samples/bigdemo/wxStaticText.rbw +55 -0
  143. data/samples/bigdemo/wxStatusBar.rbw +126 -0
  144. data/samples/bigdemo/wxTextCtrl.rbw +149 -0
  145. data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
  146. data/samples/bigdemo/wxToggleButton.rbw +49 -0
  147. data/samples/bigdemo/wxToolBar.rbw +131 -0
  148. data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
  149. data/samples/calendar/calendar.rb +256 -0
  150. data/samples/caret/caret.rb +282 -0
  151. data/samples/caret/mondrian.xpm +44 -0
  152. data/samples/controls/controls.rb +1136 -0
  153. data/samples/controls/get_item_sample.rb +87 -0
  154. data/samples/controls/icons/choice.xpm +27 -0
  155. data/samples/controls/icons/combo.xpm +27 -0
  156. data/samples/controls/icons/gauge.xpm +27 -0
  157. data/samples/controls/icons/list.xpm +27 -0
  158. data/samples/controls/icons/radio.xpm +27 -0
  159. data/samples/controls/icons/stattext.xpm +24 -0
  160. data/samples/controls/icons/text.xpm +27 -0
  161. data/samples/controls/mondrian.ico +0 -0
  162. data/samples/controls/mondrian.xpm +44 -0
  163. data/samples/controls/test2.bmp +0 -0
  164. data/samples/dialogs/dialogs.rb +797 -0
  165. data/samples/dialogs/tips.txt +18 -0
  166. data/samples/dragdrop/dragdrop.rb +177 -0
  167. data/samples/drawing/graphics_drawing.rb +235 -0
  168. data/samples/drawing/images.rb +37 -0
  169. data/samples/drawing/paperclip.png +0 -0
  170. data/samples/etc/activation.rb +102 -0
  171. data/samples/etc/choice.rb +67 -0
  172. data/samples/etc/miniframe.rb +79 -0
  173. data/samples/etc/sash.rb +130 -0
  174. data/samples/etc/scrollwin.rb +110 -0
  175. data/samples/etc/system_settings.rb +252 -0
  176. data/samples/etc/threaded.rb +72 -0
  177. data/samples/etc/toolbar_sizer_additem.rb +55 -0
  178. data/samples/etc/wizard.rb +74 -0
  179. data/samples/event/event.rb +182 -0
  180. data/samples/event/update_ui_event.rb +70 -0
  181. data/samples/grid/grid.rb +198 -0
  182. data/samples/grid/gridtablebase.rb +148 -0
  183. data/samples/html/html.rb +262 -0
  184. data/samples/listbook/listbook.rb +174 -0
  185. data/samples/listbook/listbook.xrc +370 -0
  186. data/samples/mdi/mdi.rb +85 -0
  187. data/samples/media/mediactrl.rb +167 -0
  188. data/samples/minimal/minimal.rb +77 -0
  189. data/samples/minimal/mondrian.ico +0 -0
  190. data/samples/minimal/mondrian.png +0 -0
  191. data/samples/minimal/nothing.rb +16 -0
  192. data/samples/opengl/cube.rb +117 -0
  193. data/samples/printing/mondrian.ico +0 -0
  194. data/samples/printing/mondrian.xpm +44 -0
  195. data/samples/printing/printing.rb +487 -0
  196. data/samples/sockets/SocketPackets.rb +27 -0
  197. data/samples/sockets/res/message-new.png +0 -0
  198. data/samples/sockets/res/user.png +0 -0
  199. data/samples/sockets/wxClient.rb +395 -0
  200. data/samples/sockets/wxServer.rb +422 -0
  201. data/samples/sockets/wxSocketGUI.rb +97 -0
  202. data/samples/text/format-text-bold.png +0 -0
  203. data/samples/text/format-text-italic.png +0 -0
  204. data/samples/text/format-text-underline.png +0 -0
  205. data/samples/text/mondrian.ico +0 -0
  206. data/samples/text/mondrian.xpm +44 -0
  207. data/samples/text/rich_textctrl.rb +98 -0
  208. data/samples/text/scintilla.rb +169 -0
  209. data/samples/text/textctrl.rb +111 -0
  210. data/samples/text/unicode.rb +242 -0
  211. data/samples/text/utf8.txt +15 -0
  212. data/samples/treectrl/icon1.xpm +79 -0
  213. data/samples/treectrl/icon2.xpm +53 -0
  214. data/samples/treectrl/icon3.xpm +79 -0
  215. data/samples/treectrl/icon4.xpm +43 -0
  216. data/samples/treectrl/icon5.xpm +79 -0
  217. data/samples/treectrl/treectrl.rb +1166 -0
  218. data/samples/xrc/samples.xrc +46 -0
  219. data/samples/xrc/xrc_sample.rb +76 -0
  220. metadata +17 -3
@@ -0,0 +1,57 @@
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 ScrolledMessageDialog < Wx::Dialog
13
+ def initialize(parent, msg, caption,
14
+ pos = Wx::DEFAULT_POSITION,
15
+ size = Wx::Size.new(500,300) )
16
+ super(parent, -1, caption, pos, size)
17
+ x,y = pos.x, pos.y
18
+ if x == -1 and y == -1
19
+ center_on_screen(Wx::BOTH)
20
+ end
21
+ sizer = Wx::BoxSizer.new(Wx::VERTICAL)
22
+ text = Wx::TextCtrl.new(self, -1, msg,
23
+ Wx::DEFAULT_POSITION, Wx::DEFAULT_SIZE,
24
+ Wx::TE_MULTILINE|Wx::TE_READONLY)
25
+
26
+ sizer.add(text, 1, Wx::EXPAND|Wx::ALL, 5)
27
+
28
+ button_sizer = Wx::StdDialogButtonSizer.new
29
+ button_sizer.add_button( Wx::Button.new(self, Wx::ID_OK, "OK") )
30
+ button_sizer.realize
31
+
32
+ sizer.add(button_sizer, 0, Wx::EXPAND|Wx::ALL, 5)
33
+
34
+ set_sizer(sizer)
35
+ layout
36
+ end
37
+ end
38
+
39
+ module Demo
40
+ def Demo.run(frame, nb, log)
41
+ f = open(__FILE__, "r")
42
+ msg = f.read()
43
+ dlg = ScrolledMessageDialog.new(frame, msg, "message test")
44
+ dlg.show_modal()
45
+ end
46
+
47
+ def Demo.overview
48
+ return "A simple ruby example of a custom dialog displaying a " +
49
+ "long message in a scrolled TextCtrl"
50
+ end
51
+ end
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,199 @@
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
+ #$BUFFERED = 0 #Wx::BufferedDC not yet implemented
13
+
14
+ class MyCanvas < Wx::ScrolledWindow
15
+ def initialize(parent, id=-1, size=Wx::DEFAULT_SIZE)
16
+ super(parent, -1, Wx::Point.new(0,0), size, Wx::SUNKEN_BORDER)
17
+ @lines = []
18
+ @maxWidth = 1000
19
+ @maxHeight = 1000
20
+ @x = @y = 0
21
+ @curLine = []
22
+ @drawing = false
23
+
24
+ set_background_colour(Wx::WHITE)
25
+
26
+ set_cursor(Wx::Cursor.new(Wx::CURSOR_PENCIL))
27
+ bmp_file = File.join(File.dirname(__FILE__), 'icons', 'test2.xpm')
28
+ @bmp = Wx::Bitmap.new(bmp_file)
29
+
30
+
31
+ set_scrollbars(20, 20, @maxWidth / 20, @maxHeight / 20, 0, 0, true)
32
+
33
+ evt_left_down {|event| on_left_button_event_down(event)}
34
+ evt_left_up {|event| on_left_button_event_up(event)}
35
+ evt_motion {|event| on_left_button_event_motion(event)}
36
+ evt_paint { on_paint }
37
+ #evt_mousewheel {|event| on_wheel(event)}
38
+ end
39
+
40
+ def on_paint
41
+ paint { | dc | do_drawing(dc) }
42
+ end
43
+
44
+ def do_drawing(dc, printing=false)
45
+ # Reset the origin co-ordinates of the DC to reflect current scrolling
46
+ do_prepare_dc(dc)
47
+ dc.set_pen(Wx::Pen.new("RED", 1, Wx::SOLID))
48
+ dc.draw_rectangle(5,5,50,50)
49
+
50
+ dc.set_brush(Wx::LIGHT_GREY_BRUSH)
51
+ dc.set_pen(Wx::Pen.new("BLUE", 4, Wx::SOLID))
52
+ dc.draw_rectangle(15,15,50,50)
53
+
54
+ dc.set_font(Wx::Font.new(14, Wx::SWISS, Wx::NORMAL, Wx::NORMAL))
55
+ dc.set_text_foreground(Wx::Colour.new(0xFF, 0x20, 0xFF))
56
+ te = dc.get_text_extent("Hello World")
57
+ dc.draw_text("Hello World", 60, 65)
58
+
59
+ dc.set_pen(Wx::Pen.new("VIOLET", 4, Wx::SOLID))
60
+ dc.draw_line(5, 65+te[1], 60 + te[0], 65 + te[1])
61
+
62
+ lst = [Wx::Point.new(100,110), Wx::Point.new(150, 110), Wx::Point.new(150, 160), Wx::Point.new(100, 160)]
63
+ dc.draw_lines(lst, -60)
64
+ dc.set_pen(Wx::GREY_PEN)
65
+ dc.draw_polygon(lst, 75)
66
+ dc.set_pen(Wx::GREEN_PEN)
67
+ dc.draw_spline(lst << Wx::Point.new(100,100))
68
+
69
+ dc.draw_bitmap(@bmp, 200, 20, true)
70
+ dc.set_text_foreground(Wx::Colour.new(0, 0xFF, 0x80))
71
+ dc.draw_text("a bitmap", 200,85)
72
+
73
+ font = Wx::Font.new(14, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
74
+ dc.set_font(font)
75
+ dc.set_text_foreground(Wx::BLACK)
76
+ 0.step(360, 45) {|number| dc.draw_rotated_text("Rotated text...", 300, 300, number)}
77
+
78
+ dc.set_pen(Wx::TRANSPARENT_PEN)
79
+ dc.set_brush(Wx::BLUE_BRUSH)
80
+ dc.draw_rectangle(50, 500, 50, 50)
81
+ dc.draw_rectangle(100, 500, 50, 50)
82
+
83
+ dc.set_pen(Wx::Pen.new("RED", 1, Wx::SOLID))
84
+ dc.draw_elliptic_arc(200, 500, 50, 75, 0, 90)
85
+
86
+ if not printing
87
+ # This has troubles when used on a print preview in wxGTK,
88
+ # probably something to do with the pen styles and the scaling
89
+ # it does...
90
+ y = 20
91
+ [Wx::DOT, Wx::LONG_DASH, Wx::SHORT_DASH, Wx::DOT_DASH, Wx::USER_DASH].each do |style|
92
+ pen = Wx::Pen.new("DARK ORCHID", 1, style)
93
+ if style == Wx::USER_DASH
94
+ pen.set_cap(Wx::CAP_BUTT)
95
+ pen.set_dashes([1,2])
96
+ pen.set_colour("RED")
97
+ end
98
+ dc.set_pen(pen)
99
+ dc.draw_line(300, y, 400, y)
100
+ y += 10
101
+ end
102
+ end
103
+ dc.set_brush(Wx::TRANSPARENT_BRUSH)
104
+ dc.set_pen(Wx::Pen.new(Wx::Colour.new(0xFF, 0x20, 0xFF), 1, Wx::SOLID))
105
+ dc.draw_rectangle(450, 50, 100, 100)
106
+ old_pen = dc.get_pen()
107
+ new_pen = Wx::Pen.new("BLACK", 5, Wx::SOLID)
108
+ dc.set_pen(new_pen)
109
+ dc.draw_rectangle(470, 70, 60, 60)
110
+ dc.set_pen(old_pen)
111
+ dc.draw_rectangle(490, 90, 20, 20)
112
+
113
+ draw_saved_lines(dc)
114
+ end
115
+
116
+ def draw_saved_lines(dc)
117
+ dc.set_pen(Wx::Pen.new("MEDIUM FOREST GREEN", 4, Wx::SOLID))
118
+ @lines.each do |line|
119
+ line.each do |coords|
120
+ coords.flatten!()
121
+ dc.draw_line(coords[0], coords[1], coords[2], coords[3])
122
+ end
123
+ end
124
+ end
125
+
126
+ def set_XY(event)
127
+ @x, @y = convert_event_coords(event)
128
+ end
129
+
130
+ def convert_event_coords(event)
131
+ xView, yView = get_view_start()
132
+ xDelta, yDelta = get_scroll_pixels_per_unit()
133
+ return event.get_x() + (xView * xDelta), event.get_y() + (yView * yDelta)
134
+ end
135
+
136
+ def on_left_button_event_down(event)
137
+ if event.left_is_down() and !@drawing
138
+ set_focus()
139
+ set_XY(event)
140
+ @event_x_old = event.get_x # added this to save the current absolute...
141
+ @event_y_old = event.get_y # ... mouse position
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
+ save_coords = [@x, @y] + convert_event_coords(event) # translate the absolute coords to save them in the array
171
+ coords = [@event_x_old, @event_y_old, event.get_x, event.get_y] # the absolute coords to use for the first draw
172
+ @curLine.push(save_coords) # use the translated coords here
173
+ coords.flatten!()
174
+ dc.draw_line(coords[0], coords[1], coords[2], coords[3]) # and the absolute coords here
175
+ set_XY(event)
176
+ @event_x_old = event.get_x # saving the new ...
177
+ @event_y_old = event.get_y # ... absolute coords
178
+ end
179
+ end
180
+ end
181
+
182
+ end
183
+
184
+ module Demo
185
+ def Demo.run(frame, nb, log)
186
+ win = MyCanvas.new(nb, log)
187
+ return win
188
+ end
189
+
190
+ def Demo.overview
191
+ 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."
192
+ end
193
+ end
194
+
195
+ if __FILE__ == $0
196
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
197
+ load run_solo_lib
198
+ run File.basename($0)
199
+ end
@@ -0,0 +1,33 @@
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
+ module Demo
13
+ def Demo.run(frame, nb, log)
14
+ dlg = Wx::SingleChoiceDialog.new(frame, "Test Single Choice", "The Caption",
15
+ %w(zero one two three four five six seven eight))
16
+ #Wx::CHOICEDLG_STYLE)
17
+ if dlg.show_modal() == Wx::ID_OK
18
+ log.write_text("You selected: " + dlg.get_string_selection() + "\n")
19
+ end
20
+ dlg.destroy()
21
+ return nil
22
+ end
23
+
24
+ def Demo.overview
25
+ 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."
26
+ end
27
+ end
28
+
29
+ if __FILE__ == $0
30
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
31
+ load run_solo_lib
32
+ run File.basename($0)
33
+ end
@@ -0,0 +1,42 @@
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 is a Wx::Slider", Wx::Point.new(45,15))
19
+
20
+ slider = Wx::Slider.new(self, 100, 25, 1, 100, Wx::Point.new(30,60), Wx::Size.new(250,-1),
21
+ Wx::SL_HORIZONTAL | Wx::SL_AUTOTICKS | Wx::SL_LABELS)
22
+ slider.set_tick_freq(5,1)
23
+ end
24
+ end
25
+
26
+ module Demo
27
+ def Demo.run(frame,nb,log)
28
+ win = TestPanel.new(nb, log)
29
+ return win
30
+ end
31
+
32
+ def Demo.overview
33
+ "A slider is a control with a handle which can be pulled back and forth to change the value."
34
+ end
35
+ end
36
+
37
+
38
+ if __FILE__ == $0
39
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
40
+ load run_solo_lib
41
+ run File.basename($0)
42
+ end
@@ -0,0 +1,50 @@
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 uses the wxSpinButton control.", Wx::Point.new(45,15))
19
+
20
+ @text = Wx::TextCtrl.new(self, -1, "1", Wx::Point.new(30,50), Wx::Size.new(60,-1))
21
+ h = @text.get_size().get_height()
22
+ @spin = Wx::SpinButton.new(self, 20, Wx::Point.new(92,50), Wx::Size.new(h,h), Wx::SP_VERTICAL)
23
+ @spin.set_range(1, 100)
24
+ @spin.set_value(1)
25
+
26
+ evt_spin(@spin.get_id()) {|event| on_spin(event)}
27
+ end
28
+
29
+ def on_spin(event)
30
+ @text.set_value(event.get_position().to_s())
31
+ end
32
+ end
33
+
34
+ module Demo
35
+ def Demo.run(frame,nb,log)
36
+ win = TestPanel.new(nb, log)
37
+ return win
38
+ end
39
+
40
+ def Demo.overview
41
+ "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)."
42
+ end
43
+ end
44
+
45
+
46
+ if __FILE__ == $0
47
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
48
+ load run_solo_lib
49
+ run File.basename($0)
50
+ end
@@ -0,0 +1,51 @@
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,
19
+ "This example uses the Wx::SpinCtrl control.",
20
+ Wx::Point.new(45,15))
21
+
22
+ sc = Wx::SpinCtrl.new(self, -1, "",
23
+ Wx::Point.new(30, 50), Wx::Size.new(80, -1))
24
+ sc.set_range(1,100)
25
+ sc.set_value(5)
26
+ evt_spinctrl(sc.get_id) { | e | on_spinctrl(e) }
27
+ # sc.enable(false)
28
+ end
29
+
30
+ def on_spinctrl(evt)
31
+ @log.write_text("spintctrl - new position #{evt.get_position}")
32
+ end
33
+ end
34
+
35
+ module Demo
36
+ def Demo.run(frame,nb,log)
37
+ win = TestPanel.new(nb, log)
38
+ return win
39
+ end
40
+
41
+ def Demo.overview
42
+ "Wx::SpinCtrl combines Wx::TextCtrl and Wx::SpinButton in one control."
43
+ end
44
+ end
45
+
46
+
47
+ if __FILE__ == $0
48
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
49
+ load run_solo_lib
50
+ run File.basename($0)
51
+ end
@@ -0,0 +1,63 @@
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 MySplitter < Wx::SplitterWindow
13
+ def initialize(parent, id, log)
14
+ super(parent, id)
15
+ @log = log
16
+
17
+ evt_splitter_sash_pos_changed(self.get_id()) {|event| on_sash_changed(event)}
18
+ evt_splitter_sash_pos_changing(self.get_id()) {|event| on_sash_changing(event)}
19
+ end
20
+
21
+ def on_sash_changed(event)
22
+ @log.write_text("sash changed to: " + event.get_sash_position().to_s())
23
+ # uncomment this to not allow the change
24
+ #evt.set_sash_position(-1)
25
+ end
26
+
27
+ def on_sash_changing(event)
28
+ @log.write_text("sash changing to: " + event.get_sash_position().to_s())
29
+ # uncomment this to not allow the change
30
+ #evt.set_sash_position(-1)
31
+
32
+ end
33
+ end
34
+
35
+ module Demo
36
+ def Demo.run(frame,nb,log)
37
+ splitter = MySplitter.new(nb, -1, log)
38
+
39
+ p1 = Wx::Window.new(splitter, -1)
40
+ p1.set_background_colour(Wx::RED)
41
+ Wx::StaticText.new(p1, -1, "Panel One", Wx::Point.new(5,5)).set_background_colour(Wx::RED)
42
+
43
+ p2 = Wx::Window.new(splitter, -1)
44
+ p2.set_background_colour(Wx::BLUE)
45
+ Wx::StaticText.new(p2, -1, "Panel Two", Wx::Point.new(5,5)).set_background_colour(Wx::BLUE)
46
+
47
+ splitter.set_minimum_pane_size(20)
48
+ splitter.split_vertically(p1, p2, 100)
49
+
50
+ return splitter
51
+ end
52
+
53
+ def Demo.overview
54
+ "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."
55
+ end
56
+ end
57
+
58
+
59
+ if __FILE__ == $0
60
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
61
+ load run_solo_lib
62
+ run File.basename($0)
63
+ end