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.
- data/LICENSE +53 -0
- data/README +297 -0
- data/lib/wx.rb +2 -2
- data/lib/wx/accessors.rb +7 -1
- data/lib/wx/classes/app.rb +10 -4
- data/lib/wx/classes/bitmap.rb +29 -1
- data/lib/wx/classes/clipboard.rb +19 -3
- data/lib/wx/classes/colour.rb +6 -4
- data/lib/wx/classes/data_object.rb +14 -0
- data/lib/wx/classes/data_object_simple.rb +6 -0
- data/lib/wx/classes/dataformat.rb +23 -0
- data/lib/wx/classes/evthandler.rb +79 -4
- data/lib/wx/classes/genericdirctrl.rb +36 -0
- data/lib/wx/classes/grid.rb +8 -0
- data/lib/wx/classes/hboxsizer.rb +6 -0
- data/lib/wx/classes/icon.rb +12 -1
- data/lib/wx/classes/image.rb +13 -1
- data/lib/wx/classes/listctrl.rb +12 -0
- data/lib/wx/classes/point.rb +8 -0
- data/lib/wx/classes/rect.rb +10 -1
- data/lib/wx/classes/richtextctrl.rb +63 -0
- data/lib/wx/classes/size.rb +9 -0
- data/lib/wx/classes/sizer.rb +18 -3
- data/lib/wx/classes/standardpaths.rb +9 -0
- data/lib/wx/classes/texturlevent.rb +14 -2
- data/lib/wx/classes/toolbar.rb +4 -6
- data/lib/wx/classes/vboxsizer.rb +6 -0
- data/lib/wx/classes/window.rb +7 -0
- data/lib/wx/classes/xmlresource.rb +17 -0
- data/lib/wx/helpers.rb +16 -1
- data/lib/wx/keyword_ctors.rb +3 -2
- data/lib/wx/keyword_defs.rb +56 -5
- data/lib/wx/version.rb +1 -1
- data/lib/wxruby2.bundle +0 -0
- data/samples/SAMPLES-LICENSE.TXT +18 -0
- data/samples/aui/aui.rb +1356 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +23 -0
- data/samples/bigdemo/GridSimple.rbw +78 -0
- data/samples/bigdemo/MDIDemo.rbw +57 -0
- data/samples/bigdemo/PopupMenu.rbw +149 -0
- data/samples/bigdemo/ShapedWindow.rbw +131 -0
- data/samples/bigdemo/Sizers.rbw +543 -0
- data/samples/bigdemo/bigdemo.rb +823 -0
- data/samples/bigdemo/demoTemplate.rbw +33 -0
- data/samples/bigdemo/helpfile.htb +0 -0
- data/samples/bigdemo/icons/Test 015.jpg +0 -0
- data/samples/bigdemo/icons/Test 015.png +0 -0
- data/samples/bigdemo/icons/choice.bmp +0 -0
- data/samples/bigdemo/icons/choice.xpm +27 -0
- data/samples/bigdemo/icons/combo.bmp +0 -0
- data/samples/bigdemo/icons/combo.xpm +27 -0
- data/samples/bigdemo/icons/copy.xpm +25 -0
- data/samples/bigdemo/icons/cut.xpm +24 -0
- data/samples/bigdemo/icons/gauge.bmp +0 -0
- data/samples/bigdemo/icons/gauge.xpm +27 -0
- data/samples/bigdemo/icons/help.xpm +25 -0
- data/samples/bigdemo/icons/list.bmp +0 -0
- data/samples/bigdemo/icons/list.xpm +27 -0
- data/samples/bigdemo/icons/mondrian.ico +0 -0
- data/samples/bigdemo/icons/mondrian.xpm +44 -0
- data/samples/bigdemo/icons/new.xpm +24 -0
- data/samples/bigdemo/icons/ogl.ico +0 -0
- data/samples/bigdemo/icons/ogl.xpm +45 -0
- data/samples/bigdemo/icons/open.xpm +26 -0
- data/samples/bigdemo/icons/paste.bmp +0 -0
- data/samples/bigdemo/icons/paste.xpm +38 -0
- data/samples/bigdemo/icons/pointy.png +0 -0
- data/samples/bigdemo/icons/preview.xpm +26 -0
- data/samples/bigdemo/icons/print.xpm +26 -0
- data/samples/bigdemo/icons/radio.bmp +0 -0
- data/samples/bigdemo/icons/radio.xpm +27 -0
- data/samples/bigdemo/icons/robert.xpm +415 -0
- data/samples/bigdemo/icons/ruby.png +0 -0
- data/samples/bigdemo/icons/sashtest.ico +0 -0
- data/samples/bigdemo/icons/save.xpm +25 -0
- data/samples/bigdemo/icons/smiles.bmp +0 -0
- data/samples/bigdemo/icons/smiles.xpm +39 -0
- data/samples/bigdemo/icons/smiley.ico +0 -0
- data/samples/bigdemo/icons/smiley.xpm +42 -0
- data/samples/bigdemo/icons/stattext.xpm +24 -0
- data/samples/bigdemo/icons/test2.bmp +0 -0
- data/samples/bigdemo/icons/test2.png +0 -0
- data/samples/bigdemo/icons/test2.xpm +79 -0
- data/samples/bigdemo/icons/text.bmp +0 -0
- data/samples/bigdemo/icons/text.xpm +27 -0
- data/samples/bigdemo/icons/tog1.bmp +0 -0
- data/samples/bigdemo/icons/tog1.xpm +38 -0
- data/samples/bigdemo/icons/tog2.bmp +0 -0
- data/samples/bigdemo/icons/tog2.xpm +38 -0
- data/samples/bigdemo/icons/wxwin.ico +0 -0
- data/samples/bigdemo/icons/wxwin16x16.png +0 -0
- data/samples/bigdemo/icons/wxwin16x16.xpm +25 -0
- data/samples/bigdemo/icons/wxwin32x32.png +0 -0
- data/samples/bigdemo/icons/wxwin48x48.png +0 -0
- data/samples/bigdemo/run.rb +90 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +281 -0
- data/samples/bigdemo/wxBitmapButton.rbw +65 -0
- data/samples/bigdemo/wxButton.rbw +64 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +60 -0
- data/samples/bigdemo/wxCheckBox.rbw +50 -0
- data/samples/bigdemo/wxCheckListBox.rbw +65 -0
- data/samples/bigdemo/wxChoice.rbw +47 -0
- data/samples/bigdemo/wxChoicebook.rbw +78 -0
- data/samples/bigdemo/wxColourDialog.rbw +31 -0
- data/samples/bigdemo/wxComboBox.rbw +77 -0
- data/samples/bigdemo/wxCursor.rbw +136 -0
- data/samples/bigdemo/wxDialog.rbw +74 -0
- data/samples/bigdemo/wxDirDialog.rbw +29 -0
- data/samples/bigdemo/wxDragImage.rbw +70 -0
- data/samples/bigdemo/wxFileDialog.rbw +37 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -0
- data/samples/bigdemo/wxFontDialog.rbw +173 -0
- data/samples/bigdemo/wxFrame.rbw +53 -0
- data/samples/bigdemo/wxGauge.rbw +71 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +74 -0
- data/samples/bigdemo/wxGrid.rbw +66 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +52 -0
- data/samples/bigdemo/wxListBox.rbw +140 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -0
- data/samples/bigdemo/wxMDIWindows.rbw +50 -0
- data/samples/bigdemo/wxMenu.rbw +236 -0
- data/samples/bigdemo/wxMessageDialog.rbw +27 -0
- data/samples/bigdemo/wxMiniFrame.rbw +70 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -0
- data/samples/bigdemo/wxNotebook.rbw +136 -0
- data/samples/bigdemo/wxProgressDialog.rbw +43 -0
- data/samples/bigdemo/wxRadioBox.rbw +72 -0
- data/samples/bigdemo/wxRadioButton.rbw +125 -0
- data/samples/bigdemo/wxSashWindow.rbw +141 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -0
- data/samples/bigdemo/wxSlider.rbw +42 -0
- data/samples/bigdemo/wxSpinButton.rbw +50 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +51 -0
- data/samples/bigdemo/wxStaticText.rbw +55 -0
- data/samples/bigdemo/wxStatusBar.rbw +126 -0
- data/samples/bigdemo/wxTextCtrl.rbw +149 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -0
- data/samples/bigdemo/wxToggleButton.rbw +49 -0
- data/samples/bigdemo/wxToolBar.rbw +131 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -0
- data/samples/calendar/calendar.rb +256 -0
- data/samples/caret/caret.rb +282 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/controls/controls.rb +1136 -0
- data/samples/controls/get_item_sample.rb +87 -0
- data/samples/controls/icons/choice.xpm +27 -0
- data/samples/controls/icons/combo.xpm +27 -0
- data/samples/controls/icons/gauge.xpm +27 -0
- data/samples/controls/icons/list.xpm +27 -0
- data/samples/controls/icons/radio.xpm +27 -0
- data/samples/controls/icons/stattext.xpm +24 -0
- data/samples/controls/icons/text.xpm +27 -0
- data/samples/controls/mondrian.ico +0 -0
- data/samples/controls/mondrian.xpm +44 -0
- data/samples/controls/test2.bmp +0 -0
- data/samples/dialogs/dialogs.rb +797 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/dragdrop/dragdrop.rb +177 -0
- data/samples/drawing/graphics_drawing.rb +235 -0
- data/samples/drawing/images.rb +37 -0
- data/samples/drawing/paperclip.png +0 -0
- data/samples/etc/activation.rb +102 -0
- data/samples/etc/choice.rb +67 -0
- data/samples/etc/miniframe.rb +79 -0
- data/samples/etc/sash.rb +130 -0
- data/samples/etc/scrollwin.rb +110 -0
- data/samples/etc/system_settings.rb +252 -0
- data/samples/etc/threaded.rb +72 -0
- data/samples/etc/toolbar_sizer_additem.rb +55 -0
- data/samples/etc/wizard.rb +74 -0
- data/samples/event/event.rb +182 -0
- data/samples/event/update_ui_event.rb +70 -0
- data/samples/grid/grid.rb +198 -0
- data/samples/grid/gridtablebase.rb +148 -0
- data/samples/html/html.rb +262 -0
- data/samples/listbook/listbook.rb +174 -0
- data/samples/listbook/listbook.xrc +370 -0
- data/samples/mdi/mdi.rb +85 -0
- data/samples/media/mediactrl.rb +167 -0
- data/samples/minimal/minimal.rb +77 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +16 -0
- data/samples/opengl/cube.rb +117 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +487 -0
- data/samples/sockets/SocketPackets.rb +27 -0
- data/samples/sockets/res/message-new.png +0 -0
- data/samples/sockets/res/user.png +0 -0
- data/samples/sockets/wxClient.rb +395 -0
- data/samples/sockets/wxServer.rb +422 -0
- data/samples/sockets/wxSocketGUI.rb +97 -0
- data/samples/text/format-text-bold.png +0 -0
- data/samples/text/format-text-italic.png +0 -0
- data/samples/text/format-text-underline.png +0 -0
- data/samples/text/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/rich_textctrl.rb +98 -0
- data/samples/text/scintilla.rb +169 -0
- data/samples/text/textctrl.rb +111 -0
- data/samples/text/unicode.rb +242 -0
- data/samples/text/utf8.txt +15 -0
- data/samples/treectrl/icon1.xpm +79 -0
- data/samples/treectrl/icon2.xpm +53 -0
- data/samples/treectrl/icon3.xpm +79 -0
- data/samples/treectrl/icon4.xpm +43 -0
- data/samples/treectrl/icon5.xpm +79 -0
- data/samples/treectrl/treectrl.rb +1166 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +76 -0
- 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
|