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
data/samples/mdi/mdi.rb
CHANGED
@@ -1,77 +1,85 @@
|
|
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
|
-
# close child frames within in.
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
evt_menu
|
38
|
-
menuMDI.
|
39
|
-
|
40
|
-
menuMDI.
|
41
|
-
|
42
|
-
menuMDI.append(
|
43
|
-
evt_menu
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
def
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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
|
+
# Demonstrates a simple MDI (Multiple Document Interface) parent frame
|
11
|
+
# with menus to create, cycle through and close child frames within in.
|
12
|
+
#
|
13
|
+
# Note that MDI is only properly natively implemented on Windows, and
|
14
|
+
# even there it is deprecated by Microsoft as an application interface
|
15
|
+
# style.
|
16
|
+
#
|
17
|
+
# On Linux/GTK, Wx simulates an MDI by using a Notebook. On OS X, MDI is
|
18
|
+
# simulated simply by ordinary separate frames, and Next/Preview and
|
19
|
+
# Tile/Cascade are unimplemented.
|
20
|
+
#
|
21
|
+
# For these reasons, MDI is not recommended for cross-platform
|
22
|
+
# development. Alternative interface strategies include using separate
|
23
|
+
# frames, or the AUI classes.
|
24
|
+
|
25
|
+
class MDIFrame < Wx::MDIParentFrame
|
26
|
+
def initialize(title)
|
27
|
+
super(nil, :title => title, :size => [ 500, 400 ] )
|
28
|
+
|
29
|
+
@child_number = 0
|
30
|
+
|
31
|
+
menuFile = Wx::Menu.new
|
32
|
+
menuFile.append(Wx::ID_EXIT, "E&xit\tAlt-X")
|
33
|
+
evt_menu Wx::ID_EXIT, :close
|
34
|
+
|
35
|
+
menuMDI = Wx::Menu.new
|
36
|
+
menuMDI.append(Wx::ID_FORWARD, "&Next Child\tCtrl-F6")
|
37
|
+
evt_menu Wx::ID_FORWARD, :activate_next
|
38
|
+
menuMDI.append(Wx::ID_BACKWARD, "&Previous Child")
|
39
|
+
evt_menu Wx::ID_BACKWARD, :activate_previous
|
40
|
+
menuMDI.append_separator
|
41
|
+
|
42
|
+
mi_cascade = menuMDI.append("&Cascade")
|
43
|
+
evt_menu mi_cascade, :cascade
|
44
|
+
mi_tile = menuMDI.append("&Tile")
|
45
|
+
evt_menu mi_tile, :tile
|
46
|
+
menuMDI.append_separator
|
47
|
+
|
48
|
+
menuMDI.append(Wx::ID_NEW, "&Add Child")
|
49
|
+
evt_menu Wx::ID_NEW, :create_child
|
50
|
+
menuMDI.append(Wx::ID_CLOSE, "&Remove Child\tCtrl-F4")
|
51
|
+
evt_menu Wx::ID_CLOSE, :on_close_child
|
52
|
+
|
53
|
+
menuBar = Wx::MenuBar.new
|
54
|
+
menuBar.append(menuFile, "&File")
|
55
|
+
menuBar.append(menuMDI, "&Window")
|
56
|
+
|
57
|
+
self.menu_bar = menuBar
|
58
|
+
|
59
|
+
create_status_bar(2).set_status_widths([100, -1])
|
60
|
+
set_status_text("Some features only work on MS Windows", 1)
|
61
|
+
|
62
|
+
3.times { create_child }
|
63
|
+
end
|
64
|
+
|
65
|
+
def on_close_child
|
66
|
+
if active_child
|
67
|
+
active_child.close
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def create_child
|
72
|
+
@child_number += 1
|
73
|
+
name = "Child #{@child_number.to_s}"
|
74
|
+
child = Wx::MDIChildFrame.new(self, :title => name)
|
75
|
+
# Note that this is required on OS X; if no child frames are shown,
|
76
|
+
# then nothing is shown at all.
|
77
|
+
child.show
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
Wx::App.run do
|
82
|
+
MDIFrame.new("MDI Application").show # may return false on OS X
|
83
|
+
true
|
84
|
+
end
|
85
|
+
|
data/samples/minimal/minimal.rb
CHANGED
@@ -1,77 +1,77 @@
|
|
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
|
-
# This sample shows a fairly minimal Wx::App using a Frame, with a
|
11
|
-
# MenuBar and StatusBar but no controls. For the absolute minimum app,
|
12
|
-
# see nothing.rb
|
13
|
-
|
14
|
-
# A Wx::Frame is a self-contained, top-level Window that can contain
|
15
|
-
# controls, menubars, and statusbars
|
16
|
-
class MinimalFrame < Wx::Frame
|
17
|
-
def initialize(title)
|
18
|
-
# The main application frame has no parent (nil)
|
19
|
-
super(nil, :title => title, :size => [ 400, 300 ])
|
20
|
-
|
21
|
-
#
|
22
|
-
#
|
23
|
-
icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
|
24
|
-
self.icon = Wx::Icon.new(icon_file
|
25
|
-
|
26
|
-
menu_bar = Wx::MenuBar.new
|
27
|
-
# The "file" menu
|
28
|
-
menu_file = Wx::Menu.new
|
29
|
-
# Using Wx::ID_EXIT standard id means the menu item will be given
|
30
|
-
# the right label for the platform and language, and placed in the
|
31
|
-
# correct platform-specific menu - eg on OS X, in the Application's menu
|
32
|
-
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
33
|
-
menu_bar.append(menu_file, "&File")
|
34
|
-
|
35
|
-
# The "help" menu
|
36
|
-
menu_help = Wx::Menu.new
|
37
|
-
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
38
|
-
menu_bar.append(menu_help, "&Help")
|
39
|
-
|
40
|
-
# Assign the menubar to this frame
|
41
|
-
self.menu_bar = menu_bar
|
42
|
-
|
43
|
-
# Create a status bar at the bottom of the frame
|
44
|
-
create_status_bar(2)
|
45
|
-
self.status_text = "Welcome to wxRuby!"
|
46
|
-
|
47
|
-
# Set it up to handle menu events using the relevant methods.
|
48
|
-
evt_menu Wx::ID_EXIT, :on_quit
|
49
|
-
evt_menu Wx::ID_ABOUT, :on_about
|
50
|
-
end
|
51
|
-
|
52
|
-
# End the application; it should finish automatically when the last
|
53
|
-
# window is closed.
|
54
|
-
def on_quit
|
55
|
-
close()
|
56
|
-
end
|
57
|
-
|
58
|
-
# show an 'About' dialog - WxRuby's about_box function will show a
|
59
|
-
# platform-native 'About' dialog, but you could also use an ordinary
|
60
|
-
# Wx::MessageDialog here.
|
61
|
-
def on_about
|
62
|
-
Wx::about_box(:name => self.title,
|
63
|
-
:version => Wx::WXRUBY_VERSION,
|
64
|
-
:description => "This is the minimal sample",
|
65
|
-
:developers => ['The wxRuby Development Team'] )
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# Wx::App is the container class for any wxruby app. To start an
|
70
|
-
# application, either define a subclass of Wx::App, create an instance,
|
71
|
-
# and call its main_loop method, OR, simply call the Wx::App.run class
|
72
|
-
# method, as shown here.
|
73
|
-
Wx::App.run do
|
74
|
-
self.app_name = 'Minimal'
|
75
|
-
frame = MinimalFrame.new("Minimal wxRuby App")
|
76
|
-
frame.show
|
77
|
-
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
|
+
# This sample shows a fairly minimal Wx::App using a Frame, with a
|
11
|
+
# MenuBar and StatusBar but no controls. For the absolute minimum app,
|
12
|
+
# see nothing.rb
|
13
|
+
|
14
|
+
# A Wx::Frame is a self-contained, top-level Window that can contain
|
15
|
+
# controls, menubars, and statusbars
|
16
|
+
class MinimalFrame < Wx::Frame
|
17
|
+
def initialize(title)
|
18
|
+
# The main application frame has no parent (nil)
|
19
|
+
super(nil, :title => title, :size => [ 400, 300 ])
|
20
|
+
|
21
|
+
# Give the frame an icon. PNG is a good choice of format for
|
22
|
+
# cross-platform images. Note that OS X doesn't have "Frame" icons.
|
23
|
+
icon_file = File.join( File.dirname(__FILE__), "mondrian.png")
|
24
|
+
self.icon = Wx::Icon.new(icon_file)
|
25
|
+
|
26
|
+
menu_bar = Wx::MenuBar.new
|
27
|
+
# The "file" menu
|
28
|
+
menu_file = Wx::Menu.new
|
29
|
+
# Using Wx::ID_EXIT standard id means the menu item will be given
|
30
|
+
# the right label for the platform and language, and placed in the
|
31
|
+
# correct platform-specific menu - eg on OS X, in the Application's menu
|
32
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
33
|
+
menu_bar.append(menu_file, "&File")
|
34
|
+
|
35
|
+
# The "help" menu
|
36
|
+
menu_help = Wx::Menu.new
|
37
|
+
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
38
|
+
menu_bar.append(menu_help, "&Help")
|
39
|
+
|
40
|
+
# Assign the menubar to this frame
|
41
|
+
self.menu_bar = menu_bar
|
42
|
+
|
43
|
+
# Create a status bar at the bottom of the frame
|
44
|
+
create_status_bar(2)
|
45
|
+
self.status_text = "Welcome to wxRuby!"
|
46
|
+
|
47
|
+
# Set it up to handle menu events using the relevant methods.
|
48
|
+
evt_menu Wx::ID_EXIT, :on_quit
|
49
|
+
evt_menu Wx::ID_ABOUT, :on_about
|
50
|
+
end
|
51
|
+
|
52
|
+
# End the application; it should finish automatically when the last
|
53
|
+
# window is closed.
|
54
|
+
def on_quit
|
55
|
+
close()
|
56
|
+
end
|
57
|
+
|
58
|
+
# show an 'About' dialog - WxRuby's about_box function will show a
|
59
|
+
# platform-native 'About' dialog, but you could also use an ordinary
|
60
|
+
# Wx::MessageDialog here.
|
61
|
+
def on_about
|
62
|
+
Wx::about_box(:name => self.title,
|
63
|
+
:version => Wx::WXRUBY_VERSION,
|
64
|
+
:description => "This is the minimal sample",
|
65
|
+
:developers => ['The wxRuby Development Team'] )
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
# Wx::App is the container class for any wxruby app. To start an
|
70
|
+
# application, either define a subclass of Wx::App, create an instance,
|
71
|
+
# and call its main_loop method, OR, simply call the Wx::App.run class
|
72
|
+
# method, as shown here.
|
73
|
+
Wx::App.run do
|
74
|
+
self.app_name = 'Minimal'
|
75
|
+
frame = MinimalFrame.new("Minimal wxRuby App")
|
76
|
+
frame.show
|
77
|
+
end
|
data/samples/minimal/nothing.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
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
|
-
# This is the minimum code to start a WxRuby app - create a Frame, and
|
12
|
-
# show it.
|
13
|
-
Wx::App.run do
|
14
|
-
frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
|
15
|
-
frame.show
|
16
|
-
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
|
+
# This is the minimum code to start a WxRuby app - create a Frame, and
|
12
|
+
# show it.
|
13
|
+
Wx::App.run do
|
14
|
+
frame = Wx::Frame.new(nil, :title => "Minimal wxRuby App")
|
15
|
+
frame.show
|
16
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,98 @@
|
|
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
|
+
|
5
|
+
# RichTextCtrl sample by Chauk-Mean P
|
6
|
+
#
|
7
|
+
# RichTextCtrl is a sophisticated styled text editing component. This
|
8
|
+
# short sample shows the basics, but RichTextCtrl supports numerous
|
9
|
+
# other text characteristics (font, size, colour, super/subscript), as
|
10
|
+
# well as paragraph alignment and spacing, and bullets. It permits named
|
11
|
+
# text styles to be created and organised in stylesheets. It can output
|
12
|
+
# to HTML and XML, and facilities are provided for printing.
|
13
|
+
#
|
14
|
+
# Icons are taken from the Tango Icon Theme.
|
15
|
+
|
16
|
+
begin
|
17
|
+
require 'rubygems'
|
18
|
+
rescue LoadError
|
19
|
+
end
|
20
|
+
require 'wx'
|
21
|
+
|
22
|
+
class RichTextFrame < Wx::Frame
|
23
|
+
|
24
|
+
def initialize
|
25
|
+
super( nil, :title => "RichTextCtrl sample", :size => [800, 600] )
|
26
|
+
|
27
|
+
toolbar = create_tool_bar( Wx::TB_HORIZONTAL|Wx::NO_BORDER|
|
28
|
+
Wx::TB_FLAT|Wx::TB_TEXT )
|
29
|
+
toolbar.tool_bitmap_size = [ 32, 32 ]
|
30
|
+
|
31
|
+
bold_bmp = bmp_from_png("format-text-bold.png")
|
32
|
+
toolbar.add_check_tool( Wx::ID_BOLD, "Bold",
|
33
|
+
bold_bmp, bold_bmp, "Apply bold")
|
34
|
+
|
35
|
+
italic_bmp = bmp_from_png("format-text-italic.png")
|
36
|
+
toolbar.add_check_tool( Wx::ID_ITALIC, "Italic",
|
37
|
+
italic_bmp, italic_bmp, "Apply italic")
|
38
|
+
|
39
|
+
underline_bmp = bmp_from_png("format-text-underline.png")
|
40
|
+
toolbar.add_check_tool( Wx::ID_UNDERLINE, "Underline",
|
41
|
+
underline_bmp, underline_bmp, "Apply underline")
|
42
|
+
toolbar.realize
|
43
|
+
|
44
|
+
editor = Wx::RichTextCtrl.new(self, :style => Wx::WANTS_CHARS)
|
45
|
+
editor.begin_font_size(18)
|
46
|
+
|
47
|
+
editor.begin_bold
|
48
|
+
editor.write_text "Simple RichTextCtrl sample"
|
49
|
+
editor.end_bold
|
50
|
+
editor.newline
|
51
|
+
editor.begin_italic
|
52
|
+
editor.write_text "Use the formatting buttons then type some text or "
|
53
|
+
editor.write_text "select some text and use the buttons to apply the formatting.\n"
|
54
|
+
editor.end_italic
|
55
|
+
|
56
|
+
# Apply / unapply bold to selection
|
57
|
+
evt_tool(Wx::ID_BOLD) do
|
58
|
+
editor.apply_bold_to_selection
|
59
|
+
end
|
60
|
+
|
61
|
+
# Keep the pressed / unpressed state of the button in sync with the
|
62
|
+
# current selection in the text ctrl
|
63
|
+
evt_update_ui(Wx::ID_BOLD) do |evt|
|
64
|
+
evt.check(editor.selection_bold?)
|
65
|
+
end
|
66
|
+
|
67
|
+
evt_tool(Wx::ID_ITALIC) do
|
68
|
+
editor.apply_italic_to_selection
|
69
|
+
end
|
70
|
+
|
71
|
+
evt_update_ui(Wx::ID_ITALIC) do |evt|
|
72
|
+
evt.check(editor.selection_italics?)
|
73
|
+
end
|
74
|
+
|
75
|
+
evt_tool(Wx::ID_UNDERLINE) do
|
76
|
+
editor.apply_underline_to_selection
|
77
|
+
end
|
78
|
+
|
79
|
+
evt_update_ui(Wx::ID_UNDERLINE) do |evt|
|
80
|
+
evt.check(editor.selection_underlined?)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# Return a new bitmap corresponding to the specified PNG filename
|
85
|
+
def bmp_from_png(filename)
|
86
|
+
img_file = File.join( File.dirname(__FILE__), filename)
|
87
|
+
Wx::Bitmap.new(img_file, Wx::BITMAP_TYPE_PNG)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
# The Application
|
93
|
+
Wx::App.run do
|
94
|
+
self.app_name = 'RichTextCtrl sample'
|
95
|
+
frame = RichTextFrame.new
|
96
|
+
frame.centre
|
97
|
+
frame.show
|
98
|
+
end
|