wxruby 1.9.9-x86-mingw32 → 1.9.10-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +53 -53
- data/README +297 -297
- data/lib/wx.rb +53 -53
- 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 +31 -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 +22 -0
- data/lib/wx/classes/size.rb +9 -0
- data/lib/wx/classes/sizer.rb +18 -3
- 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 +27 -5
- data/lib/wx/version.rb +1 -1
- data/lib/wxruby2.so +0 -0
- data/samples/SAMPLES-LICENSE.TXT +17 -17
- data/samples/bigdemo/About.rbw +39 -39
- data/samples/bigdemo/ColorPanel.rbw +23 -23
- data/samples/bigdemo/GridSimple.rbw +78 -78
- data/samples/bigdemo/MDIDemo.rbw +57 -57
- data/samples/bigdemo/PopupMenu.rbw +149 -149
- data/samples/bigdemo/Sizers.rbw +543 -543
- data/samples/bigdemo/bigdemo.rb +823 -823
- data/samples/bigdemo/demoTemplate.rbw +33 -33
- 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 +64 -64
- data/samples/bigdemo/wxCalendarCtrl.rbw +60 -60
- data/samples/bigdemo/wxCheckBox.rbw +50 -50
- data/samples/bigdemo/wxCheckListBox.rbw +65 -75
- data/samples/bigdemo/wxChoice.rbw +47 -47
- data/samples/bigdemo/wxColourDialog.rbw +31 -31
- data/samples/bigdemo/wxComboBox.rbw +77 -77
- data/samples/bigdemo/wxDialog.rbw +74 -74
- data/samples/bigdemo/wxDirDialog.rbw +29 -29
- data/samples/bigdemo/wxFileDialog.rbw +37 -37
- data/samples/bigdemo/wxFileDialog_Save.rbw +35 -35
- data/samples/bigdemo/wxFindReplaceDialog.rbw +82 -82
- data/samples/bigdemo/wxFontDialog.rbw +173 -173
- data/samples/bigdemo/wxFrame.rbw +53 -53
- data/samples/bigdemo/wxGauge.rbw +71 -71
- data/samples/bigdemo/wxGrid.rbw +66 -66
- data/samples/bigdemo/wxListBox.rbw +140 -140
- data/samples/bigdemo/wxListCtrl_virtual.rbw +112 -107
- data/samples/bigdemo/wxMDIWindows.rbw +50 -50
- data/samples/bigdemo/wxMenu.rbw +236 -236
- data/samples/bigdemo/wxMessageDialog.rbw +27 -27
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +32 -32
- data/samples/bigdemo/wxNotebook.rbw +136 -136
- data/samples/bigdemo/wxProgressDialog.rbw +43 -43
- data/samples/bigdemo/wxRadioBox.rbw +72 -72
- data/samples/bigdemo/wxRadioButton.rbw +125 -125
- data/samples/bigdemo/wxSashWindow.rbw +2 -2
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +57 -57
- data/samples/bigdemo/wxScrolledWindow.rbw +199 -199
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +33 -33
- data/samples/bigdemo/wxSlider.rbw +42 -42
- data/samples/bigdemo/wxSpinButton.rbw +50 -50
- data/samples/bigdemo/wxSpinCtrl.rbw +51 -51
- data/samples/bigdemo/wxSplitterWindow.rbw +63 -63
- data/samples/bigdemo/wxStaticBitmap.rbw +51 -51
- data/samples/bigdemo/wxStaticText.rbw +55 -55
- data/samples/bigdemo/wxStatusBar.rbw +126 -126
- data/samples/bigdemo/wxTextCtrl.rbw +149 -149
- data/samples/bigdemo/wxTextEntryDialog.rbw +31 -31
- data/samples/bigdemo/wxToggleButton.rbw +49 -49
- data/samples/bigdemo/wxToolBar.rbw +131 -131
- data/samples/bigdemo/wxTreeCtrl.rbw +191 -190
- data/samples/calendar/calendar.rb +256 -271
- data/samples/caret/caret.rb +282 -282
- data/samples/caret/mondrian.xpm +44 -44
- data/samples/controls/controls.rb +1136 -1136
- 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 +797 -723
- data/samples/dialogs/tips.txt +18 -18
- data/samples/drawing/images.rb +37 -37
- data/samples/etc/activation.rb +102 -102
- data/samples/etc/choice.rb +67 -67
- data/samples/etc/miniframe.rb +79 -79
- data/samples/etc/sash.rb +130 -130
- data/samples/etc/scrollwin.rb +110 -110
- data/samples/etc/system_settings.rb +252 -252
- data/samples/etc/toolbar_sizer_additem.rb +55 -0
- data/samples/etc/wizard.rb +74 -74
- data/samples/event/update_ui_event.rb +70 -0
- data/samples/grid/gridtablebase.rb +43 -29
- data/samples/listbook/listbook.rb +174 -174
- data/samples/listbook/listbook.xrc +370 -370
- data/samples/mdi/mdi.rb +85 -77
- data/samples/minimal/minimal.rb +77 -77
- data/samples/minimal/nothing.rb +16 -16
- 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/rich_textctrl.rb +98 -0
- data/samples/text/textctrl.rb +111 -113
- data/samples/text/unicode.rb +242 -242
- data/samples/text/utf8.txt +14 -14
- data/samples/treectrl/treectrl.rb +1166 -1174
- data/samples/xrc/samples.xrc +46 -46
- data/samples/xrc/xrc_sample.rb +76 -96
- metadata +15 -3
@@ -1,78 +1,78 @@
|
|
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 SimpleGrid < Wx::Grid
|
13
|
-
|
14
|
-
def initialize(parent, log)
|
15
|
-
super(parent, -1)
|
16
|
-
@log = log
|
17
|
-
@moveTo = nil
|
18
|
-
|
19
|
-
evt_idle {|event| on_idle(event)}
|
20
|
-
|
21
|
-
create_grid(25,25)
|
22
|
-
|
23
|
-
# simple cell formatting
|
24
|
-
set_col_size(3,200)
|
25
|
-
set_row_size(4,45)
|
26
|
-
set_cell_value(0,0,"First cell")
|
27
|
-
set_cell_value(1,1,"Another cell")
|
28
|
-
set_cell_value(2,2,"Yet another cell")
|
29
|
-
set_cell_value(3,3,"This cell is read-only")
|
30
|
-
set_cell_font(0,0, Wx::Font.new(12, Wx::ROMAN, Wx::ITALIC, Wx::NORMAL))
|
31
|
-
set_cell_text_colour(1,1,Wx::RED)
|
32
|
-
set_cell_background_colour(2,2,Wx::CYAN)
|
33
|
-
set_read_only(3,3,true)
|
34
|
-
|
35
|
-
set_col_label_value(0, "Custom")
|
36
|
-
set_col_label_value(1, "column")
|
37
|
-
set_col_label_value(2, "labels")
|
38
|
-
|
39
|
-
set_col_label_alignment(Wx::ALIGN_LEFT, Wx::ALIGN_BOTTOM)
|
40
|
-
|
41
|
-
# overflow cells
|
42
|
-
set_cell_value(9,1, "This default cell will overflow into neighboring cells, but not if you turn overflow off.")
|
43
|
-
#set_cell_size(11, 1, 3, 3)
|
44
|
-
set_cell_alignment(11, 1, Wx::ALIGN_CENTRE, Wx::ALIGN_CENTRE)
|
45
|
-
set_cell_value(11, 1, "This cell is set to span 3 rows and 3 columns")
|
46
|
-
|
47
|
-
# evt_grid_cell_left_click {|event| on_cell_left_click(event)}
|
48
|
-
end
|
49
|
-
|
50
|
-
def on_cell_left_click(event)
|
51
|
-
@log.write_text("on_cell_left_click: (%d,%d)" % [evt.get_row(), evt.get_col()])
|
52
|
-
evt.skip()
|
53
|
-
end
|
54
|
-
|
55
|
-
def on_idle(event)
|
56
|
-
if @moveTo != nil
|
57
|
-
set_grid_cursor(@moveTo[0], @moveTo[1])
|
58
|
-
@moveTo = nil
|
59
|
-
end
|
60
|
-
event.skip()
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
module GridDemo
|
65
|
-
class TestFrame < Wx::Frame
|
66
|
-
def initialize(parent, log)
|
67
|
-
super(parent, -1, "Simple Grid Demo", Wx::DEFAULT_POSITION, Wx::Size.new(640,480))
|
68
|
-
grid = SimpleGrid.new(self, log)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
if __FILE__ == $0
|
75
|
-
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
76
|
-
load run_solo_lib
|
77
|
-
run File.basename($0)
|
78
|
-
end
|
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 SimpleGrid < Wx::Grid
|
13
|
+
|
14
|
+
def initialize(parent, log)
|
15
|
+
super(parent, -1)
|
16
|
+
@log = log
|
17
|
+
@moveTo = nil
|
18
|
+
|
19
|
+
evt_idle {|event| on_idle(event)}
|
20
|
+
|
21
|
+
create_grid(25,25)
|
22
|
+
|
23
|
+
# simple cell formatting
|
24
|
+
set_col_size(3,200)
|
25
|
+
set_row_size(4,45)
|
26
|
+
set_cell_value(0,0,"First cell")
|
27
|
+
set_cell_value(1,1,"Another cell")
|
28
|
+
set_cell_value(2,2,"Yet another cell")
|
29
|
+
set_cell_value(3,3,"This cell is read-only")
|
30
|
+
set_cell_font(0,0, Wx::Font.new(12, Wx::ROMAN, Wx::ITALIC, Wx::NORMAL))
|
31
|
+
set_cell_text_colour(1,1,Wx::RED)
|
32
|
+
set_cell_background_colour(2,2,Wx::CYAN)
|
33
|
+
set_read_only(3,3,true)
|
34
|
+
|
35
|
+
set_col_label_value(0, "Custom")
|
36
|
+
set_col_label_value(1, "column")
|
37
|
+
set_col_label_value(2, "labels")
|
38
|
+
|
39
|
+
set_col_label_alignment(Wx::ALIGN_LEFT, Wx::ALIGN_BOTTOM)
|
40
|
+
|
41
|
+
# overflow cells
|
42
|
+
set_cell_value(9,1, "This default cell will overflow into neighboring cells, but not if you turn overflow off.")
|
43
|
+
#set_cell_size(11, 1, 3, 3)
|
44
|
+
set_cell_alignment(11, 1, Wx::ALIGN_CENTRE, Wx::ALIGN_CENTRE)
|
45
|
+
set_cell_value(11, 1, "This cell is set to span 3 rows and 3 columns")
|
46
|
+
|
47
|
+
# evt_grid_cell_left_click {|event| on_cell_left_click(event)}
|
48
|
+
end
|
49
|
+
|
50
|
+
def on_cell_left_click(event)
|
51
|
+
@log.write_text("on_cell_left_click: (%d,%d)" % [evt.get_row(), evt.get_col()])
|
52
|
+
evt.skip()
|
53
|
+
end
|
54
|
+
|
55
|
+
def on_idle(event)
|
56
|
+
if @moveTo != nil
|
57
|
+
set_grid_cursor(@moveTo[0], @moveTo[1])
|
58
|
+
@moveTo = nil
|
59
|
+
end
|
60
|
+
event.skip()
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
module GridDemo
|
65
|
+
class TestFrame < Wx::Frame
|
66
|
+
def initialize(parent, log)
|
67
|
+
super(parent, -1, "Simple Grid Demo", Wx::DEFAULT_POSITION, Wx::Size.new(640,480))
|
68
|
+
grid = SimpleGrid.new(self, log)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
if __FILE__ == $0
|
75
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
76
|
+
load run_solo_lib
|
77
|
+
run File.basename($0)
|
78
|
+
end
|
data/samples/bigdemo/MDIDemo.rbw
CHANGED
@@ -1,57 +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
|
-
module Demo
|
13
|
-
|
14
|
-
class MyParentFrame < Wx::MDIParentFrame
|
15
|
-
def initialize
|
16
|
-
super(nil, -1, "MDI Parent", Wx::DEFAULT_POSITION,
|
17
|
-
Wx::Size.new(600,400))
|
18
|
-
|
19
|
-
@win_count = 0
|
20
|
-
menu = Wx::Menu.new
|
21
|
-
menu.append(5000, "&New Window")
|
22
|
-
menu.append_separator
|
23
|
-
menu.append(5001, "E&xit")
|
24
|
-
|
25
|
-
menubar = Wx::MenuBar.new()
|
26
|
-
menubar.append(menu, "&File")
|
27
|
-
set_menu_bar(menubar)
|
28
|
-
|
29
|
-
create_status_bar
|
30
|
-
|
31
|
-
evt_menu(5000) {|event| on_new_window(event)}
|
32
|
-
evt_menu(5001) {|event| on_exit(event)}
|
33
|
-
scrollwin_demo_file = File.join(File.dirname(__FILE__),
|
34
|
-
"wxScrolledWindow.rbw")
|
35
|
-
load scrollwin_demo_file
|
36
|
-
end
|
37
|
-
|
38
|
-
def on_exit(event)
|
39
|
-
close()
|
40
|
-
end
|
41
|
-
|
42
|
-
def on_new_window(event)
|
43
|
-
@win_count += 1
|
44
|
-
win = Wx::MDIChildFrame.new(self, -1, "Child Window: #{@win_count}")
|
45
|
-
canvas = MyCanvas.new(win)
|
46
|
-
win.show
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
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
|
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
|
+
|
14
|
+
class MyParentFrame < Wx::MDIParentFrame
|
15
|
+
def initialize
|
16
|
+
super(nil, -1, "MDI Parent", Wx::DEFAULT_POSITION,
|
17
|
+
Wx::Size.new(600,400))
|
18
|
+
|
19
|
+
@win_count = 0
|
20
|
+
menu = Wx::Menu.new
|
21
|
+
menu.append(5000, "&New Window")
|
22
|
+
menu.append_separator
|
23
|
+
menu.append(5001, "E&xit")
|
24
|
+
|
25
|
+
menubar = Wx::MenuBar.new()
|
26
|
+
menubar.append(menu, "&File")
|
27
|
+
set_menu_bar(menubar)
|
28
|
+
|
29
|
+
create_status_bar
|
30
|
+
|
31
|
+
evt_menu(5000) {|event| on_new_window(event)}
|
32
|
+
evt_menu(5001) {|event| on_exit(event)}
|
33
|
+
scrollwin_demo_file = File.join(File.dirname(__FILE__),
|
34
|
+
"wxScrolledWindow.rbw")
|
35
|
+
load scrollwin_demo_file
|
36
|
+
end
|
37
|
+
|
38
|
+
def on_exit(event)
|
39
|
+
close()
|
40
|
+
end
|
41
|
+
|
42
|
+
def on_new_window(event)
|
43
|
+
@win_count += 1
|
44
|
+
win = Wx::MDIChildFrame.new(self, -1, "Child Window: #{@win_count}")
|
45
|
+
canvas = MyCanvas.new(win)
|
46
|
+
win.show
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
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
|
@@ -1,149 +1,149 @@
|
|
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
|
-
TEXT = "Right-click on the panel (or Ctrl-click on the Mac) to show a popup\nmenu. Then look at the code for this sample. Notice how the\nPopupMenu method is similar to the ShowModal method of a wxDialog in\nthat it doesn't return until the popup menu has been dismissed. The\nevent handlers for the popup menu items can either be attached to the\nmenu itself, or to the window that invokes PopupMenu."
|
13
|
-
|
14
|
-
class TestPanel < Wx::Panel
|
15
|
-
def initialize(parent, log)
|
16
|
-
@log = log
|
17
|
-
super(parent, -1)
|
18
|
-
@bound = false
|
19
|
-
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
20
|
-
|
21
|
-
# Make and layout controls
|
22
|
-
fs = get_font().get_point_size()
|
23
|
-
bf = Wx::Font.new(fs + 4, Wx::SWISS, Wx::NORMAL, Wx::BOLD)
|
24
|
-
nf = Wx::Font.new(fs + 2, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
|
25
|
-
|
26
|
-
t = Wx::StaticText.new(self, -1, "Popup menu", Wx::DEFAULT_POSITION)
|
27
|
-
t.set_font(bf)
|
28
|
-
box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
|
29
|
-
|
30
|
-
box.add(Wx::StaticLine.new(self, -1), 0, Wx::EXPAND)
|
31
|
-
box.add(10,20)
|
32
|
-
|
33
|
-
t = Wx::StaticText.new(self, -1, TEXT)
|
34
|
-
t.set_font(nf)
|
35
|
-
box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
|
36
|
-
|
37
|
-
set_sizer(box)
|
38
|
-
|
39
|
-
evt_right_up {|event| on_right_click(event)}
|
40
|
-
end
|
41
|
-
|
42
|
-
def on_right_click(event)
|
43
|
-
@log.write_text("on_right_click")
|
44
|
-
|
45
|
-
# only do this part the first time so the events are only bound once
|
46
|
-
if @bound == false
|
47
|
-
@popupID1,
|
48
|
-
@popupID2,
|
49
|
-
@popupID3,
|
50
|
-
@popupID4,
|
51
|
-
@popupID5,
|
52
|
-
@popupID6,
|
53
|
-
@popupID7,
|
54
|
-
@popupID8,
|
55
|
-
@popupID9 = (5000..5008).to_a()
|
56
|
-
evt_menu(@popupID1) {|event| on_popup_one(event)}
|
57
|
-
evt_menu(@popupID2) {|event| on_popup_two(event)}
|
58
|
-
evt_menu(@popupID3) {|event| on_popup_three(event)}
|
59
|
-
evt_menu(@popupID4) {|event| on_popup_four(event)}
|
60
|
-
evt_menu(@popupID5) {|event| on_popup_five(event)}
|
61
|
-
evt_menu(@popupID6) {|event| on_popup_six(event)}
|
62
|
-
evt_menu(@popupID7) {|event| on_popup_seven(event)}
|
63
|
-
evt_menu(@popupID8) {|event| on_popup_eight(event)}
|
64
|
-
evt_menu(@popupID9) {|event| on_popup_nine(event)}
|
65
|
-
@bound = true
|
66
|
-
end
|
67
|
-
|
68
|
-
# make a menu
|
69
|
-
menu = Wx::Menu.new()
|
70
|
-
# Show how to put an icon in the menu
|
71
|
-
item = Wx::MenuItem.new(menu, @popupID1, "One")
|
72
|
-
# set_bitmap is only available on GTK and Windows
|
73
|
-
if item.respond_to?(:set_bitmap)
|
74
|
-
bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiley.xpm')
|
75
|
-
item.set_bitmap( Wx::Bitmap.new(bmp_file) )
|
76
|
-
end
|
77
|
-
menu.append_item(item)
|
78
|
-
# add some other items
|
79
|
-
menu.append(@popupID2, "Two")
|
80
|
-
menu.append(@popupID3, "Three")
|
81
|
-
menu.append(@popupID4, "Four")
|
82
|
-
menu.append(@popupID5, "Five")
|
83
|
-
menu.append(@popupID6, "Six")
|
84
|
-
# make a submenu
|
85
|
-
sm = Wx::Menu.new()
|
86
|
-
sm.append(@popupID8, "sub item 1")
|
87
|
-
sm.append(@popupID9, "sub item 2")
|
88
|
-
mItem = Wx::MenuItem.new(menu, @popupID7, "Test Submenu", "", Wx::ITEM_NORMAL, sm)
|
89
|
-
menu.append_item(mItem)
|
90
|
-
|
91
|
-
popup_menu(menu, Wx::Point.new(event.get_x(), event.get_y()))
|
92
|
-
#menu.destroy()
|
93
|
-
end
|
94
|
-
|
95
|
-
def on_popup_one(event)
|
96
|
-
@log.write_text("Popup one")
|
97
|
-
end
|
98
|
-
|
99
|
-
def on_popup_two(event)
|
100
|
-
@log.write_text("Popup two")
|
101
|
-
end
|
102
|
-
|
103
|
-
def on_popup_three(event)
|
104
|
-
@log.write_text("Popup three")
|
105
|
-
end
|
106
|
-
|
107
|
-
def on_popup_four(event)
|
108
|
-
@log.write_text("Popup four")
|
109
|
-
end
|
110
|
-
|
111
|
-
def on_popup_five(event)
|
112
|
-
@log.write_text("Popup five")
|
113
|
-
end
|
114
|
-
|
115
|
-
def on_popup_six(event)
|
116
|
-
@log.write_text("Popup six")
|
117
|
-
end
|
118
|
-
|
119
|
-
def on_popup_seven(event)
|
120
|
-
@log.write_text("Popup seven")
|
121
|
-
end
|
122
|
-
|
123
|
-
def on_popup_eight(event)
|
124
|
-
@log.write_text("Popup eight")
|
125
|
-
end
|
126
|
-
|
127
|
-
def on_popup_nine(event)
|
128
|
-
@log.write_text("Popup nine")
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
module Demo
|
134
|
-
def Demo.run(frame, nb, log)
|
135
|
-
win = TestPanel.new(nb, log)
|
136
|
-
return win
|
137
|
-
end
|
138
|
-
|
139
|
-
def Demo.overview
|
140
|
-
return ""
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
|
145
|
-
if __FILE__ == $0
|
146
|
-
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
147
|
-
load run_solo_lib
|
148
|
-
run File.basename($0)
|
149
|
-
end
|
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
|
+
TEXT = "Right-click on the panel (or Ctrl-click on the Mac) to show a popup\nmenu. Then look at the code for this sample. Notice how the\nPopupMenu method is similar to the ShowModal method of a wxDialog in\nthat it doesn't return until the popup menu has been dismissed. The\nevent handlers for the popup menu items can either be attached to the\nmenu itself, or to the window that invokes PopupMenu."
|
13
|
+
|
14
|
+
class TestPanel < Wx::Panel
|
15
|
+
def initialize(parent, log)
|
16
|
+
@log = log
|
17
|
+
super(parent, -1)
|
18
|
+
@bound = false
|
19
|
+
box = Wx::BoxSizer.new(Wx::VERTICAL)
|
20
|
+
|
21
|
+
# Make and layout controls
|
22
|
+
fs = get_font().get_point_size()
|
23
|
+
bf = Wx::Font.new(fs + 4, Wx::SWISS, Wx::NORMAL, Wx::BOLD)
|
24
|
+
nf = Wx::Font.new(fs + 2, Wx::SWISS, Wx::NORMAL, Wx::NORMAL)
|
25
|
+
|
26
|
+
t = Wx::StaticText.new(self, -1, "Popup menu", Wx::DEFAULT_POSITION)
|
27
|
+
t.set_font(bf)
|
28
|
+
box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
|
29
|
+
|
30
|
+
box.add(Wx::StaticLine.new(self, -1), 0, Wx::EXPAND)
|
31
|
+
box.add(10,20)
|
32
|
+
|
33
|
+
t = Wx::StaticText.new(self, -1, TEXT)
|
34
|
+
t.set_font(nf)
|
35
|
+
box.add(t, 0, Wx::CENTER | Wx::ALL, 5)
|
36
|
+
|
37
|
+
set_sizer(box)
|
38
|
+
|
39
|
+
evt_right_up {|event| on_right_click(event)}
|
40
|
+
end
|
41
|
+
|
42
|
+
def on_right_click(event)
|
43
|
+
@log.write_text("on_right_click")
|
44
|
+
|
45
|
+
# only do this part the first time so the events are only bound once
|
46
|
+
if @bound == false
|
47
|
+
@popupID1,
|
48
|
+
@popupID2,
|
49
|
+
@popupID3,
|
50
|
+
@popupID4,
|
51
|
+
@popupID5,
|
52
|
+
@popupID6,
|
53
|
+
@popupID7,
|
54
|
+
@popupID8,
|
55
|
+
@popupID9 = (5000..5008).to_a()
|
56
|
+
evt_menu(@popupID1) {|event| on_popup_one(event)}
|
57
|
+
evt_menu(@popupID2) {|event| on_popup_two(event)}
|
58
|
+
evt_menu(@popupID3) {|event| on_popup_three(event)}
|
59
|
+
evt_menu(@popupID4) {|event| on_popup_four(event)}
|
60
|
+
evt_menu(@popupID5) {|event| on_popup_five(event)}
|
61
|
+
evt_menu(@popupID6) {|event| on_popup_six(event)}
|
62
|
+
evt_menu(@popupID7) {|event| on_popup_seven(event)}
|
63
|
+
evt_menu(@popupID8) {|event| on_popup_eight(event)}
|
64
|
+
evt_menu(@popupID9) {|event| on_popup_nine(event)}
|
65
|
+
@bound = true
|
66
|
+
end
|
67
|
+
|
68
|
+
# make a menu
|
69
|
+
menu = Wx::Menu.new()
|
70
|
+
# Show how to put an icon in the menu
|
71
|
+
item = Wx::MenuItem.new(menu, @popupID1, "One")
|
72
|
+
# set_bitmap is only available on GTK and Windows
|
73
|
+
if item.respond_to?(:set_bitmap)
|
74
|
+
bmp_file = File.join( File.dirname(__FILE__), 'icons', 'smiley.xpm')
|
75
|
+
item.set_bitmap( Wx::Bitmap.new(bmp_file) )
|
76
|
+
end
|
77
|
+
menu.append_item(item)
|
78
|
+
# add some other items
|
79
|
+
menu.append(@popupID2, "Two")
|
80
|
+
menu.append(@popupID3, "Three")
|
81
|
+
menu.append(@popupID4, "Four")
|
82
|
+
menu.append(@popupID5, "Five")
|
83
|
+
menu.append(@popupID6, "Six")
|
84
|
+
# make a submenu
|
85
|
+
sm = Wx::Menu.new()
|
86
|
+
sm.append(@popupID8, "sub item 1")
|
87
|
+
sm.append(@popupID9, "sub item 2")
|
88
|
+
mItem = Wx::MenuItem.new(menu, @popupID7, "Test Submenu", "", Wx::ITEM_NORMAL, sm)
|
89
|
+
menu.append_item(mItem)
|
90
|
+
|
91
|
+
popup_menu(menu, Wx::Point.new(event.get_x(), event.get_y()))
|
92
|
+
#menu.destroy()
|
93
|
+
end
|
94
|
+
|
95
|
+
def on_popup_one(event)
|
96
|
+
@log.write_text("Popup one")
|
97
|
+
end
|
98
|
+
|
99
|
+
def on_popup_two(event)
|
100
|
+
@log.write_text("Popup two")
|
101
|
+
end
|
102
|
+
|
103
|
+
def on_popup_three(event)
|
104
|
+
@log.write_text("Popup three")
|
105
|
+
end
|
106
|
+
|
107
|
+
def on_popup_four(event)
|
108
|
+
@log.write_text("Popup four")
|
109
|
+
end
|
110
|
+
|
111
|
+
def on_popup_five(event)
|
112
|
+
@log.write_text("Popup five")
|
113
|
+
end
|
114
|
+
|
115
|
+
def on_popup_six(event)
|
116
|
+
@log.write_text("Popup six")
|
117
|
+
end
|
118
|
+
|
119
|
+
def on_popup_seven(event)
|
120
|
+
@log.write_text("Popup seven")
|
121
|
+
end
|
122
|
+
|
123
|
+
def on_popup_eight(event)
|
124
|
+
@log.write_text("Popup eight")
|
125
|
+
end
|
126
|
+
|
127
|
+
def on_popup_nine(event)
|
128
|
+
@log.write_text("Popup nine")
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
module Demo
|
134
|
+
def Demo.run(frame, nb, log)
|
135
|
+
win = TestPanel.new(nb, log)
|
136
|
+
return win
|
137
|
+
end
|
138
|
+
|
139
|
+
def Demo.overview
|
140
|
+
return ""
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
|
145
|
+
if __FILE__ == $0
|
146
|
+
run_solo_lib = File.join( File.dirname(__FILE__), 'run.rb')
|
147
|
+
load run_solo_lib
|
148
|
+
run File.basename($0)
|
149
|
+
end
|