wxruby 1.9.2-i386-mswin32 → 1.9.3-i386-mswin32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/LICENSE +53 -53
  2. data/README +299 -299
  3. data/lib/wx/classes/app.rb +6 -0
  4. data/lib/wx/classes/checklistbox.rb +45 -30
  5. data/lib/wx/classes/clipboard.rb +16 -0
  6. data/lib/wx/classes/event.rb +5 -0
  7. data/lib/wx/classes/evthandler.rb +20 -10
  8. data/lib/wx/classes/grid.rb +38 -39
  9. data/lib/wx/classes/listctrl.rb +12 -0
  10. data/lib/wx/classes/mediactrl.rb +22 -0
  11. data/lib/wx/classes/menu.rb +6 -6
  12. data/lib/wx/classes/sound.rb +23 -0
  13. data/lib/wx/classes/styledtextctrl.rb +2 -2
  14. data/lib/wx/classes/treectrl.rb +26 -0
  15. data/lib/wx/keyword_ctors.rb +19 -5
  16. data/lib/wx/keyword_defs.rb +20 -0
  17. data/lib/wx/version.rb +1 -1
  18. data/lib/wx.rb +42 -42
  19. data/lib/wxruby2.exp +0 -0
  20. data/lib/wxruby2.lib +0 -0
  21. data/lib/wxruby2.so +0 -0
  22. data/samples/SAMPLES-LICENSE.TXT +17 -17
  23. data/samples/aui/aui.rb +8 -1
  24. data/samples/bigdemo/About.rbw +39 -39
  25. data/samples/bigdemo/ColorPanel.rbw +25 -25
  26. data/samples/bigdemo/GridSimple.rbw +80 -80
  27. data/samples/bigdemo/MDIDemo.rbw +59 -59
  28. data/samples/bigdemo/PopupMenu.rbw +151 -151
  29. data/samples/bigdemo/Sizers.rbw +545 -545
  30. data/samples/bigdemo/bigdemo.rb +826 -826
  31. data/samples/bigdemo/demoTemplate.rbw +37 -37
  32. data/samples/bigdemo/icons/choice.xpm +27 -27
  33. data/samples/bigdemo/icons/combo.xpm +27 -27
  34. data/samples/bigdemo/icons/copy.xpm +25 -25
  35. data/samples/bigdemo/icons/cut.xpm +24 -24
  36. data/samples/bigdemo/icons/gauge.xpm +27 -27
  37. data/samples/bigdemo/icons/help.xpm +25 -25
  38. data/samples/bigdemo/icons/list.xpm +27 -27
  39. data/samples/bigdemo/icons/mondrian.xpm +44 -44
  40. data/samples/bigdemo/icons/new.xpm +24 -24
  41. data/samples/bigdemo/icons/ogl.ico +0 -0
  42. data/samples/bigdemo/icons/ogl.xpm +45 -45
  43. data/samples/bigdemo/icons/open.xpm +26 -26
  44. data/samples/bigdemo/icons/paste.xpm +38 -38
  45. data/samples/bigdemo/icons/preview.xpm +26 -26
  46. data/samples/bigdemo/icons/print.xpm +26 -26
  47. data/samples/bigdemo/icons/radio.xpm +27 -27
  48. data/samples/bigdemo/icons/robert.xpm +415 -415
  49. data/samples/bigdemo/icons/save.xpm +25 -25
  50. data/samples/bigdemo/icons/smiles.xpm +39 -39
  51. data/samples/bigdemo/icons/smiley.xpm +42 -42
  52. data/samples/bigdemo/icons/stattext.xpm +24 -24
  53. data/samples/bigdemo/icons/test2.bmp +0 -0
  54. data/samples/bigdemo/icons/test2.xpm +79 -79
  55. data/samples/bigdemo/icons/text.xpm +27 -27
  56. data/samples/bigdemo/icons/tog1.xpm +38 -38
  57. data/samples/bigdemo/icons/tog2.xpm +38 -38
  58. data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
  59. data/samples/bigdemo/tips.txt +7 -7
  60. data/samples/bigdemo/utils.rb +11 -11
  61. data/samples/bigdemo/wxButton.rbw +66 -66
  62. data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
  63. data/samples/bigdemo/wxCheckBox.rbw +52 -52
  64. data/samples/bigdemo/wxCheckListBox.rbw +77 -77
  65. data/samples/bigdemo/wxChoice.rbw +49 -49
  66. data/samples/bigdemo/wxColourDialog.rbw +34 -34
  67. data/samples/bigdemo/wxComboBox.rbw +79 -79
  68. data/samples/bigdemo/wxDialog.rbw +92 -92
  69. data/samples/bigdemo/wxDirDialog.rbw +32 -32
  70. data/samples/bigdemo/wxFileDialog.rbw +39 -39
  71. data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
  72. data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
  73. data/samples/bigdemo/wxFontDialog.rbw +176 -176
  74. data/samples/bigdemo/wxFrame.rbw +55 -55
  75. data/samples/bigdemo/wxGauge.rbw +73 -73
  76. data/samples/bigdemo/wxGrid.rbw +68 -68
  77. data/samples/bigdemo/wxListBox.rbw +142 -142
  78. data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
  79. data/samples/bigdemo/wxMDIWindows.rbw +52 -52
  80. data/samples/bigdemo/wxMenu.rbw +238 -238
  81. data/samples/bigdemo/wxMessageDialog.rbw +30 -30
  82. data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
  83. data/samples/bigdemo/wxNotebook.rbw +138 -138
  84. data/samples/bigdemo/wxProgressDialog.rbw +45 -45
  85. data/samples/bigdemo/wxRadioBox.rbw +74 -74
  86. data/samples/bigdemo/wxRadioButton.rbw +127 -127
  87. data/samples/bigdemo/wxSashWindow.rbw +94 -104
  88. data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
  89. data/samples/bigdemo/wxScrolledWindow.rbw +201 -201
  90. data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
  91. data/samples/bigdemo/wxSlider.rbw +44 -44
  92. data/samples/bigdemo/wxSpinButton.rbw +52 -52
  93. data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
  94. data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
  95. data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
  96. data/samples/bigdemo/wxStaticText.rbw +57 -57
  97. data/samples/bigdemo/wxStatusBar.rbw +128 -128
  98. data/samples/bigdemo/wxTextCtrl.rbw +151 -151
  99. data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
  100. data/samples/bigdemo/wxToggleButton.rbw +51 -51
  101. data/samples/bigdemo/wxToolBar.rbw +133 -133
  102. data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
  103. data/samples/calendar/calendar.rb +275 -275
  104. data/samples/caret/caret.rb +286 -286
  105. data/samples/caret/mondrian.xpm +44 -44
  106. data/samples/controls/controls.rb +1140 -1140
  107. data/samples/controls/get_item_sample.rb +87 -87
  108. data/samples/controls/icons/choice.xpm +27 -27
  109. data/samples/controls/icons/combo.xpm +27 -27
  110. data/samples/controls/icons/gauge.xpm +27 -27
  111. data/samples/controls/icons/list.xpm +27 -27
  112. data/samples/controls/icons/radio.xpm +27 -27
  113. data/samples/controls/icons/stattext.xpm +24 -24
  114. data/samples/controls/icons/text.xpm +27 -27
  115. data/samples/controls/mondrian.xpm +44 -44
  116. data/samples/dialogs/dialogs.rb +724 -724
  117. data/samples/dialogs/tips.txt +18 -18
  118. data/samples/drawing/graphics_drawing.rb +232 -0
  119. data/samples/{images → drawing}/images.rb +48 -48
  120. data/samples/{images → drawing}/paperclip.png +0 -0
  121. data/samples/etc/activation.rb +108 -108
  122. data/samples/etc/choice.rb +72 -72
  123. data/samples/etc/miniframe.rb +84 -84
  124. data/samples/etc/sash.rb +135 -135
  125. data/samples/etc/scrollwin.rb +116 -116
  126. data/samples/etc/system_settings.rb +258 -258
  127. data/samples/etc/wizard.rb +79 -79
  128. data/samples/grid/grid.rb +1 -0
  129. data/samples/listbook/listbook.rb +181 -181
  130. data/samples/listbook/listbook.xrc +370 -370
  131. data/samples/mdi/mdi.rb +87 -87
  132. data/samples/media/mediactrl.rb +173 -0
  133. data/samples/minimal/minimal.rb +85 -85
  134. data/samples/minimal/nothing.rb +21 -21
  135. data/samples/opengl/cube.rb +123 -0
  136. data/samples/sockets/SocketPackets.rb +27 -0
  137. data/samples/sockets/res/message-new.png +0 -0
  138. data/samples/sockets/res/user.png +0 -0
  139. data/samples/sockets/wxClient.rb +395 -0
  140. data/samples/sockets/wxServer.rb +422 -0
  141. data/samples/sockets/wxSocketGUI.rb +97 -0
  142. data/samples/text/textctrl.rb +124 -124
  143. data/samples/text/unicode.rb +238 -238
  144. data/samples/text/utf8.txt +14 -14
  145. data/samples/treectrl/treectrl.rb +1180 -1181
  146. data/samples/xrc/samples.xrc +46 -46
  147. data/samples/xrc/xrc_sample.rb +107 -107
  148. metadata +26 -9
  149. data/samples/images/Thumbs.db +0 -0
@@ -1,201 +1,201 @@
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
- @event_x_old = event.get_x # added this to save the current absolute...
143
- @event_y_old = event.get_y # ... mouse position
144
- @curLine = []
145
- capture_mouse()
146
- @drawing = true
147
- end
148
- end
149
-
150
- def on_left_button_event_up(event)
151
- if !event.left_is_down() and @drawing
152
- @lines.push(@curLine)
153
- @curLine = []
154
- release_mouse()
155
- @drawing = false
156
- end
157
- end
158
-
159
- def on_left_button_event_motion(event)
160
- if event.left_is_down() and @drawing
161
- # if $BUFFERED
162
- # # If doing buffered drawing, create the buffered DC, giving it
163
- # # it a real DC to blit to when done.
164
- # cdc = Wx::ClientDC.new(self)
165
- # dc = Wx::BufferedDC.new(cdc, @buffer)
166
- # else
167
- # dc = Wx::ClientDC.new(self)
168
- # end
169
-
170
- paint do | dc |
171
- dc.set_pen(Wx::Pen.new("MEDIUM FOREST GREEN", 4, Wx::SOLID))
172
- save_coords = [@x, @y] + convert_event_coords(event) # translate the absolute coords to save them in the array
173
- coords = [@event_x_old, @event_y_old, event.get_x, event.get_y] # the absolute coords to use for the first draw
174
- @curLine.push(save_coords) # use the translated coords here
175
- coords.flatten!()
176
- dc.draw_line(coords[0], coords[1], coords[2], coords[3]) # and the absolute coords here
177
- set_XY(event)
178
- @event_x_old = event.get_x # saving the new ...
179
- @event_y_old = event.get_y # ... absolute coords
180
- end
181
- end
182
- end
183
-
184
- end
185
-
186
- module Demo
187
- def Demo.run(frame, nb, log)
188
- win = MyCanvas.new(nb, log)
189
- return win
190
- end
191
-
192
- def Demo.overview
193
- 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."
194
- end
195
- end
196
-
197
- if __FILE__ == $0
198
- run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
199
- load run_solo_lib
200
- run File.basename($0)
201
- end
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
+ @event_x_old = event.get_x # added this to save the current absolute...
143
+ @event_y_old = event.get_y # ... mouse position
144
+ @curLine = []
145
+ capture_mouse()
146
+ @drawing = true
147
+ end
148
+ end
149
+
150
+ def on_left_button_event_up(event)
151
+ if !event.left_is_down() and @drawing
152
+ @lines.push(@curLine)
153
+ @curLine = []
154
+ release_mouse()
155
+ @drawing = false
156
+ end
157
+ end
158
+
159
+ def on_left_button_event_motion(event)
160
+ if event.left_is_down() and @drawing
161
+ # if $BUFFERED
162
+ # # If doing buffered drawing, create the buffered DC, giving it
163
+ # # it a real DC to blit to when done.
164
+ # cdc = Wx::ClientDC.new(self)
165
+ # dc = Wx::BufferedDC.new(cdc, @buffer)
166
+ # else
167
+ # dc = Wx::ClientDC.new(self)
168
+ # end
169
+
170
+ paint do | dc |
171
+ dc.set_pen(Wx::Pen.new("MEDIUM FOREST GREEN", 4, Wx::SOLID))
172
+ save_coords = [@x, @y] + convert_event_coords(event) # translate the absolute coords to save them in the array
173
+ coords = [@event_x_old, @event_y_old, event.get_x, event.get_y] # the absolute coords to use for the first draw
174
+ @curLine.push(save_coords) # use the translated coords here
175
+ coords.flatten!()
176
+ dc.draw_line(coords[0], coords[1], coords[2], coords[3]) # and the absolute coords here
177
+ set_XY(event)
178
+ @event_x_old = event.get_x # saving the new ...
179
+ @event_y_old = event.get_y # ... absolute coords
180
+ end
181
+ end
182
+ end
183
+
184
+ end
185
+
186
+ module Demo
187
+ def Demo.run(frame, nb, log)
188
+ win = MyCanvas.new(nb, log)
189
+ return win
190
+ end
191
+
192
+ def Demo.overview
193
+ 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."
194
+ end
195
+ end
196
+
197
+ if __FILE__ == $0
198
+ run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
199
+ load run_solo_lib
200
+ run File.basename($0)
201
+ end
@@ -1,35 +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
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
@@ -1,44 +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
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
@@ -1,52 +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
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