wxruby 1.9.0-i386-mswin32 → 1.9.1-i386-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/wx.rb +42 -35
- data/lib/wx/accessors.rb +52 -0
- data/lib/wx/classes/evthandler.rb +36 -32
- data/lib/wx/classes/grid.rb +13 -13
- data/lib/wx/classes/point.rb +43 -0
- data/lib/wx/classes/size.rb +44 -0
- data/lib/wx/classes/styledtextctrl.rb +92 -0
- data/lib/wx/classes/textctrl.rb +14 -0
- data/lib/wx/classes/window.rb +4 -0
- data/lib/wx/keyword_ctors.rb +219 -0
- data/lib/wx/keyword_defs.rb +455 -0
- data/lib/wx/version.rb +1 -1
- data/lib/wxruby2.exp +0 -0
- data/lib/wxruby2.lib +0 -0
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +17 -17
- data/samples/aui/aui.rb +6 -5
- data/samples/bigdemo/About.rbw +39 -39
- data/samples/bigdemo/ColorPanel.rbw +25 -25
- data/samples/bigdemo/GridSimple.rbw +80 -80
- data/samples/bigdemo/MDIDemo.rbw +59 -59
- data/samples/bigdemo/PopupMenu.rbw +151 -151
- data/samples/bigdemo/Sizers.rbw +545 -545
- data/samples/bigdemo/bigdemo.rb +826 -826
- data/samples/bigdemo/demoTemplate.rbw +37 -37
- data/samples/bigdemo/icons/choice.xpm +27 -27
- data/samples/bigdemo/icons/combo.xpm +27 -27
- data/samples/bigdemo/icons/copy.xpm +25 -25
- data/samples/bigdemo/icons/cut.xpm +24 -24
- data/samples/bigdemo/icons/gauge.xpm +27 -27
- data/samples/bigdemo/icons/help.xpm +25 -25
- data/samples/bigdemo/icons/list.xpm +27 -27
- data/samples/bigdemo/icons/mondrian.xpm +44 -44
- data/samples/bigdemo/icons/new.xpm +24 -24
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -45
- data/samples/bigdemo/icons/open.xpm +26 -26
- data/samples/bigdemo/icons/paste.xpm +38 -38
- data/samples/bigdemo/icons/preview.xpm +26 -26
- data/samples/bigdemo/icons/print.xpm +26 -26
- data/samples/bigdemo/icons/radio.xpm +27 -27
- data/samples/bigdemo/icons/robert.xpm +415 -415
- data/samples/bigdemo/icons/save.xpm +25 -25
- data/samples/bigdemo/icons/smiles.xpm +39 -39
- data/samples/bigdemo/icons/smiley.xpm +42 -42
- data/samples/bigdemo/icons/stattext.xpm +24 -24
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -79
- data/samples/bigdemo/icons/text.xpm +27 -27
- data/samples/bigdemo/icons/tog1.xpm +38 -38
- data/samples/bigdemo/icons/tog2.xpm +38 -38
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -25
- data/samples/bigdemo/tips.txt +7 -7
- data/samples/bigdemo/utils.rb +11 -11
- data/samples/bigdemo/wxButton.rbw +66 -66
- data/samples/bigdemo/wxCalendarCtrl.rbw +72 -72
- data/samples/bigdemo/wxCheckBox.rbw +52 -52
- data/samples/bigdemo/wxCheckListBox.rbw +77 -77
- data/samples/bigdemo/wxChoice.rbw +49 -49
- data/samples/bigdemo/wxColourDialog.rbw +34 -34
- data/samples/bigdemo/wxComboBox.rbw +79 -79
- data/samples/bigdemo/wxDialog.rbw +92 -92
- data/samples/bigdemo/wxDirDialog.rbw +32 -32
- data/samples/bigdemo/wxFileDialog.rbw +39 -39
- data/samples/bigdemo/wxFileDialog_Save.rbw +38 -38
- data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -85
- data/samples/bigdemo/wxFontDialog.rbw +176 -176
- data/samples/bigdemo/wxFrame.rbw +55 -55
- data/samples/bigdemo/wxGauge.rbw +73 -73
- data/samples/bigdemo/wxGrid.rbw +68 -68
- data/samples/bigdemo/wxListBox.rbw +142 -142
- data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -109
- data/samples/bigdemo/wxMDIWindows.rbw +52 -52
- data/samples/bigdemo/wxMenu.rbw +238 -238
- data/samples/bigdemo/wxMessageDialog.rbw +30 -30
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -34
- data/samples/bigdemo/wxNotebook.rbw +138 -138
- data/samples/bigdemo/wxProgressDialog.rbw +45 -45
- data/samples/bigdemo/wxRadioBox.rbw +74 -74
- data/samples/bigdemo/wxRadioButton.rbw +127 -127
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -59
- data/samples/bigdemo/wxScrolledWindow.rbw +196 -196
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -35
- data/samples/bigdemo/wxSlider.rbw +44 -44
- data/samples/bigdemo/wxSpinButton.rbw +52 -52
- data/samples/bigdemo/wxSpinCtrl.rbw +53 -53
- data/samples/bigdemo/wxSplitterWindow.rbw +65 -65
- data/samples/bigdemo/wxStaticBitmap.rbw +53 -53
- data/samples/bigdemo/wxStaticText.rbw +57 -57
- data/samples/bigdemo/wxStatusBar.rbw +128 -128
- data/samples/bigdemo/wxTextCtrl.rbw +151 -151
- data/samples/bigdemo/wxTextEntryDialog.rbw +34 -34
- data/samples/bigdemo/wxToggleButton.rbw +51 -51
- data/samples/bigdemo/wxToolBar.rbw +133 -133
- data/samples/bigdemo/wxTreeCtrl.rbw +192 -192
- data/samples/calendar/calendar.rb +275 -275
- data/samples/caret/caret.rb +296 -296
- data/samples/caret/mondrian.xpm +44 -44
- data/samples/controls/controls.rb +1140 -1140
- data/samples/controls/get_item_sample.rb +87 -87
- data/samples/controls/icons/choice.xpm +27 -27
- data/samples/controls/icons/combo.xpm +27 -27
- data/samples/controls/icons/gauge.xpm +27 -27
- data/samples/controls/icons/list.xpm +27 -27
- data/samples/controls/icons/radio.xpm +27 -27
- data/samples/controls/icons/stattext.xpm +24 -24
- data/samples/controls/icons/text.xpm +27 -27
- data/samples/controls/mondrian.xpm +44 -44
- data/samples/dialogs/dialogs.rb +724 -724
- data/samples/dialogs/tips.txt +18 -18
- data/samples/etc/activation.rb +108 -108
- data/samples/etc/choice.rb +72 -72
- data/samples/etc/miniframe.rb +84 -84
- data/samples/etc/sash.rb +135 -135
- data/samples/etc/scrollwin.rb +116 -116
- data/samples/etc/system_settings.rb +258 -258
- data/samples/etc/wizard.rb +81 -81
- data/samples/event/event.rb +184 -0
- data/samples/images/images.rb +48 -48
- data/samples/listbook/listbook.rb +183 -183
- data/samples/listbook/listbook.xrc +370 -370
- data/samples/mdi/mdi.rb +87 -87
- data/samples/minimal/minimal.rb +83 -95
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +46 -46
- data/samples/minimal/text.rb +35 -35
- data/samples/text/scintilla.rb +22 -28
- data/samples/text/textctrl.rb +124 -124
- data/samples/text/unicode.rb +238 -238
- data/samples/text/utf8.txt +14 -14
- data/samples/treectrl/treectrl.rb +1210 -1210
- data/samples/xrc/samples.xrc +46 -46
- data/samples/xrc/xrc_sample.rb +107 -107
- metadata +13 -5
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.xpm +0 -44
@@ -1,196 +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
|
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
|
@@ -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
|