wxruby 1.9.3-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +53 -0
- data/README +299 -0
- data/lib/wx.rb +42 -0
- data/lib/wx/accessors.rb +52 -0
- data/lib/wx/classes/app.rb +45 -0
- data/lib/wx/classes/artprovider.rb +31 -0
- data/lib/wx/classes/bitmap.rb +23 -0
- data/lib/wx/classes/checklistbox.rb +45 -0
- data/lib/wx/classes/choice.rb +4 -0
- data/lib/wx/classes/clientdc.rb +13 -0
- data/lib/wx/classes/clipboard.rb +16 -0
- data/lib/wx/classes/colour.rb +47 -0
- data/lib/wx/classes/combobox.rb +4 -0
- data/lib/wx/classes/commandevent.rb +7 -0
- data/lib/wx/classes/controlwithitems.rb +10 -0
- data/lib/wx/classes/event.rb +5 -0
- data/lib/wx/classes/evthandler.rb +894 -0
- data/lib/wx/classes/font.rb +118 -0
- data/lib/wx/classes/grid.rb +129 -0
- data/lib/wx/classes/helpcontroller.rb +5 -0
- data/lib/wx/classes/htmlhelpcontroller.rb +5 -0
- data/lib/wx/classes/htmlwindow.rb +6 -0
- data/lib/wx/classes/icon.rb +14 -0
- data/lib/wx/classes/image.rb +14 -0
- data/lib/wx/classes/listbox.rb +4 -0
- data/lib/wx/classes/listctrl.rb +21 -0
- data/lib/wx/classes/locale.rb +28 -0
- data/lib/wx/classes/mediactrl.rb +22 -0
- data/lib/wx/classes/menu.rb +62 -0
- data/lib/wx/classes/menuitem.rb +7 -0
- data/lib/wx/classes/object.rb +7 -0
- data/lib/wx/classes/paintdc.rb +12 -0
- data/lib/wx/classes/point.rb +48 -0
- data/lib/wx/classes/previewframe.rb +13 -0
- data/lib/wx/classes/rect.rb +5 -0
- data/lib/wx/classes/size.rb +49 -0
- data/lib/wx/classes/sound.rb +23 -0
- data/lib/wx/classes/styledtextctrl.rb +92 -0
- data/lib/wx/classes/textctrl.rb +14 -0
- data/lib/wx/classes/texturlevent.rb +6 -0
- data/lib/wx/classes/timer.rb +69 -0
- data/lib/wx/classes/treectrl.rb +44 -0
- data/lib/wx/classes/window.rb +49 -0
- data/lib/wx/classes/xmlresource.rb +16 -0
- data/lib/wx/keyword_ctors.rb +219 -0
- data/lib/wx/keyword_defs.rb +485 -0
- data/lib/wx/version.rb +3 -0
- data/lib/wxruby2.bundle +0 -0
- data/samples/SAMPLES-LICENSE.TXT +18 -0
- data/samples/aui/aui.rb +1360 -0
- data/samples/bigdemo/About.rbw +39 -0
- data/samples/bigdemo/ColorPanel.rbw +25 -0
- data/samples/bigdemo/GridSimple.rbw +80 -0
- data/samples/bigdemo/MDIDemo.rbw +59 -0
- data/samples/bigdemo/PopupMenu.rbw +151 -0
- data/samples/bigdemo/ShapedWindow.rbw +135 -0
- data/samples/bigdemo/Sizers.rbw +545 -0
- data/samples/bigdemo/bigdemo.rb +826 -0
- data/samples/bigdemo/demoTemplate.rbw +37 -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 +94 -0
- data/samples/bigdemo/tips.txt +7 -0
- data/samples/bigdemo/utils.rb +12 -0
- data/samples/bigdemo/wxArtProvider.rbw +285 -0
- data/samples/bigdemo/wxBitmapButton.rbw +64 -0
- data/samples/bigdemo/wxButton.rbw +66 -0
- data/samples/bigdemo/wxCalendarCtrl.rbw +72 -0
- data/samples/bigdemo/wxCheckBox.rbw +52 -0
- data/samples/bigdemo/wxCheckListBox.rbw +77 -0
- data/samples/bigdemo/wxChoice.rbw +49 -0
- data/samples/bigdemo/wxChoicebook.rbw +80 -0
- data/samples/bigdemo/wxColourDialog.rbw +34 -0
- data/samples/bigdemo/wxComboBox.rbw +79 -0
- data/samples/bigdemo/wxCursor.rbw +140 -0
- data/samples/bigdemo/wxDialog.rbw +92 -0
- data/samples/bigdemo/wxDirDialog.rbw +32 -0
- data/samples/bigdemo/wxDragImage.rbw +74 -0
- data/samples/bigdemo/wxFileDialog.rbw +39 -0
- data/samples/bigdemo/wxFileDialog_Save.rbw +38 -0
- data/samples/bigdemo/wxFindReplaceDialog.rbw +85 -0
- data/samples/bigdemo/wxFontDialog.rbw +176 -0
- data/samples/bigdemo/wxFrame.rbw +55 -0
- data/samples/bigdemo/wxGauge.rbw +73 -0
- data/samples/bigdemo/wxGenericDirCtrl.rbw +78 -0
- data/samples/bigdemo/wxGrid.rbw +68 -0
- data/samples/bigdemo/wxHtmlHelpController.rbw +57 -0
- data/samples/bigdemo/wxListBox.rbw +142 -0
- data/samples/bigdemo/wxListCtrl_virtual.rbw +109 -0
- data/samples/bigdemo/wxMDIWindows.rbw +52 -0
- data/samples/bigdemo/wxMenu.rbw +238 -0
- data/samples/bigdemo/wxMessageDialog.rbw +30 -0
- data/samples/bigdemo/wxMiniFrame.rbw +74 -0
- data/samples/bigdemo/wxMultipleChoiceDialog.rbw +34 -0
- data/samples/bigdemo/wxNotebook.rbw +138 -0
- data/samples/bigdemo/wxProgressDialog.rbw +45 -0
- data/samples/bigdemo/wxRadioBox.rbw +74 -0
- data/samples/bigdemo/wxRadioButton.rbw +127 -0
- data/samples/bigdemo/wxSashWindow.rbw +145 -0
- data/samples/bigdemo/wxScrolledMessageDialog.rbw +59 -0
- data/samples/bigdemo/wxScrolledWindow.rbw +201 -0
- data/samples/bigdemo/wxSingleChoiceDialog.rbw +35 -0
- data/samples/bigdemo/wxSlider.rbw +44 -0
- data/samples/bigdemo/wxSpinButton.rbw +52 -0
- data/samples/bigdemo/wxSpinCtrl.rbw +53 -0
- data/samples/bigdemo/wxSplitterWindow.rbw +65 -0
- data/samples/bigdemo/wxStaticBitmap.rbw +53 -0
- data/samples/bigdemo/wxStaticText.rbw +57 -0
- data/samples/bigdemo/wxStatusBar.rbw +128 -0
- data/samples/bigdemo/wxTextCtrl.rbw +151 -0
- data/samples/bigdemo/wxTextEntryDialog.rbw +34 -0
- data/samples/bigdemo/wxToggleButton.rbw +51 -0
- data/samples/bigdemo/wxToolBar.rbw +133 -0
- data/samples/bigdemo/wxTreeCtrl.rbw +192 -0
- data/samples/calendar/calendar.rb +275 -0
- data/samples/caret/caret.rb +286 -0
- data/samples/caret/mondrian.xpm +44 -0
- data/samples/controls/controls.rb +1140 -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 +724 -0
- data/samples/dialogs/tips.txt +18 -0
- data/samples/drawing/graphics_drawing.rb +232 -0
- data/samples/drawing/images.rb +48 -0
- data/samples/drawing/paperclip.png +0 -0
- data/samples/etc/activation.rb +108 -0
- data/samples/etc/choice.rb +72 -0
- data/samples/etc/miniframe.rb +84 -0
- data/samples/etc/sash.rb +135 -0
- data/samples/etc/scrollwin.rb +116 -0
- data/samples/etc/system_settings.rb +258 -0
- data/samples/etc/threaded.rb +81 -0
- data/samples/etc/wizard.rb +79 -0
- data/samples/event/event.rb +184 -0
- data/samples/grid/grid.rb +202 -0
- data/samples/html/html.rb +264 -0
- data/samples/listbook/listbook.rb +181 -0
- data/samples/listbook/listbook.xrc +370 -0
- data/samples/mdi/mdi.rb +87 -0
- data/samples/media/mediactrl.rb +173 -0
- data/samples/minimal/minimal.rb +85 -0
- data/samples/minimal/mondrian.ico +0 -0
- data/samples/minimal/mondrian.png +0 -0
- data/samples/minimal/nothing.rb +21 -0
- data/samples/opengl/cube.rb +123 -0
- data/samples/printing/mondrian.ico +0 -0
- data/samples/printing/mondrian.xpm +44 -0
- data/samples/printing/printing.rb +484 -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/mondrian.ico +0 -0
- data/samples/text/mondrian.xpm +44 -0
- data/samples/text/scintilla.rb +174 -0
- data/samples/text/textctrl.rb +124 -0
- data/samples/text/unicode.rb +238 -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 +1180 -0
- data/samples/xrc/samples.xrc +46 -0
- data/samples/xrc/xrc_sample.rb +107 -0
- metadata +296 -0
@@ -0,0 +1,264 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
|
3
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'wx'
|
7
|
+
rescue LoadError => no_wx_err
|
8
|
+
begin
|
9
|
+
require 'rubygems'
|
10
|
+
require 'wx'
|
11
|
+
rescue LoadError
|
12
|
+
raise no_wx_err
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
require 'net/http'
|
17
|
+
require 'uri'
|
18
|
+
|
19
|
+
class MyHtmlWindow < Wx::HtmlWindow
|
20
|
+
attr_reader :html_src
|
21
|
+
def load_page_from_uri(uri)
|
22
|
+
case uri
|
23
|
+
when URI::HTTP
|
24
|
+
Wx::BusyCursor.busy do
|
25
|
+
begin
|
26
|
+
res = Net::HTTP.start(uri.host, uri.port) do | http |
|
27
|
+
http.get(uri.path)
|
28
|
+
end
|
29
|
+
@loaded_uri = uri
|
30
|
+
set_page(res.body)
|
31
|
+
rescue => err
|
32
|
+
msg = "Could not load page:\n#{err}"
|
33
|
+
Wx::MessageDialog.new(nil, msg, 'Error loading page',
|
34
|
+
Wx::OK|Wx::ICON_ERROR).show_modal
|
35
|
+
return ''
|
36
|
+
end
|
37
|
+
end
|
38
|
+
return @loaded_uri
|
39
|
+
when URI::Generic
|
40
|
+
if @loaded_uri and @loaded_uri.kind_of?(URI::HTTP)
|
41
|
+
return load_page_from_uri( @loaded_uri.merge(uri) )
|
42
|
+
elsif @loaded_uri # current viewing a file
|
43
|
+
if uri.to_s =~ /^\//
|
44
|
+
return load_file(uri.path)
|
45
|
+
elsif not uri.path.empty?
|
46
|
+
local_file = File.join( File.dirname(@loaded_uri.path), uri.path)
|
47
|
+
return load_file( local_file )
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
dlg = Wx::MessageDialog.new(nil, "Can't load link",
|
53
|
+
"Unable to load the link #{uri}",
|
54
|
+
Wx::ICON_ERROR)
|
55
|
+
dlg.show_modal
|
56
|
+
end
|
57
|
+
|
58
|
+
def load_file(file)
|
59
|
+
@loaded_uri = URI.parse("file:////" + file)
|
60
|
+
super file
|
61
|
+
@loaded_uri
|
62
|
+
end
|
63
|
+
|
64
|
+
def set_page(html)
|
65
|
+
super html
|
66
|
+
@html_src = html
|
67
|
+
get_related_frame.addr_bar.set_value(@loaded_uri.to_s)
|
68
|
+
end
|
69
|
+
|
70
|
+
def on_link_clicked(link)
|
71
|
+
href = link.get_href
|
72
|
+
if href =~ /^#/
|
73
|
+
super(link)
|
74
|
+
end
|
75
|
+
link_uri = URI.parse(href)
|
76
|
+
@loaded_uri = load_page_from_uri(link_uri)
|
77
|
+
end
|
78
|
+
|
79
|
+
def on_cell_mouse_hover(cell, x, y)
|
80
|
+
if link = cell.get_link
|
81
|
+
related_frame.status_text = link.get_href, 1
|
82
|
+
else
|
83
|
+
related_frame.status_text = ''
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# The frame or self-contained window for this application
|
89
|
+
class HtmlFrame < Wx::Frame
|
90
|
+
attr_reader :html_win, :addr_bar
|
91
|
+
|
92
|
+
def initialize(title, pos, size, style = Wx::DEFAULT_FRAME_STYLE)
|
93
|
+
# A main application frame has no parent (nil)
|
94
|
+
# -1 means this frame will be supplied a default id
|
95
|
+
super(nil, -1, title, pos, size, style)
|
96
|
+
setup_menus
|
97
|
+
setup_panel
|
98
|
+
create_status_bar
|
99
|
+
self.status_text = "Welcome to wxRuby!"
|
100
|
+
end
|
101
|
+
|
102
|
+
def setup_panel
|
103
|
+
panel = Wx::Panel.new(self, -1)
|
104
|
+
|
105
|
+
sizer = Wx::BoxSizer.new(Wx::VERTICAL)
|
106
|
+
top_sizer = Wx::BoxSizer.new(Wx::HORIZONTAL)
|
107
|
+
|
108
|
+
@go_butt = Wx::StaticText.new(panel, -1, 'Location:')
|
109
|
+
top_sizer.add(@go_butt, 0, Wx::ALL, 4)
|
110
|
+
@addr_bar = Wx::TextCtrl.new(panel, -1, 'HOME', Wx::DEFAULT_POSITION,
|
111
|
+
Wx::DEFAULT_SIZE, Wx::TE_READONLY)
|
112
|
+
top_sizer.add(@addr_bar, 1, Wx::ALL, 4)
|
113
|
+
sizer.add(top_sizer, 0, Wx::EXPAND|Wx::TOP|Wx::BOTTOM, 4)
|
114
|
+
|
115
|
+
@html_win = MyHtmlWindow.new(panel, -1)
|
116
|
+
@html_win.set_related_frame(self, 'HTML Window: %s')
|
117
|
+
@html_win.set_related_status_bar(2)
|
118
|
+
@html_win.set_page(DATA.read)
|
119
|
+
sizer.add(@html_win, 1, Wx::ALL|Wx::GROW, 4)
|
120
|
+
panel.set_sizer(sizer)
|
121
|
+
end
|
122
|
+
|
123
|
+
def setup_menus
|
124
|
+
menu_file = Wx::Menu.new()
|
125
|
+
menu_help = Wx::Menu.new()
|
126
|
+
# Using Wx::ID_ABOUT default id means the menu item will be placed
|
127
|
+
# in the correct platform-specific place
|
128
|
+
menu_help.append(Wx::ID_ABOUT, "&About...\tF1", "Show about dialog")
|
129
|
+
menu_file.append(Wx::ID_OPEN, "&Open File...\tCtrl-O", "Open File")
|
130
|
+
menu_file.append(Wx::ID_HIGHEST + 1, "&Open URL...\tCtrl-U", "Open URL")
|
131
|
+
menu_file.append(Wx::ID_PRINT, "&Print...\tCtrl-P", "Print")
|
132
|
+
|
133
|
+
menu_file.append(Wx::ID_PREVIEW, "&Preview...\tCtrl-Shift-P",
|
134
|
+
"Print Preview")
|
135
|
+
menu_file.append(Wx::ID_EXIT, "E&xit\tAlt-X", "Quit this program")
|
136
|
+
|
137
|
+
menu_bar = Wx::MenuBar.new()
|
138
|
+
menu_bar.append(menu_file, "&File")
|
139
|
+
menu_bar.append(menu_help, "&Help")
|
140
|
+
# Assign the menus to this frame
|
141
|
+
self.menu_bar = menu_bar
|
142
|
+
# handle menu events
|
143
|
+
evt_menu Wx::ID_OPEN, :on_open_file
|
144
|
+
evt_menu Wx::ID_HIGHEST + 1, :on_open_url
|
145
|
+
evt_menu Wx::ID_PRINT, :on_print
|
146
|
+
evt_menu Wx::ID_PREVIEW, :on_preview
|
147
|
+
evt_menu Wx::ID_EXIT, :on_quit
|
148
|
+
evt_menu Wx::ID_ABOUT, :on_about
|
149
|
+
end
|
150
|
+
|
151
|
+
# end the application
|
152
|
+
def on_quit
|
153
|
+
close
|
154
|
+
end
|
155
|
+
|
156
|
+
def on_open_file
|
157
|
+
f_dlg = Wx::FileDialog.new(self, "Open an HTML file", "", "",
|
158
|
+
"HTML files (*.html;*.htm)|*.html;*.htm)",
|
159
|
+
Wx::OPEN)
|
160
|
+
if not f_dlg.show_modal == Wx::ID_OK
|
161
|
+
return
|
162
|
+
end
|
163
|
+
html_file = f_dlg.get_path
|
164
|
+
if html_file.index("\\")
|
165
|
+
html_file = html_file.split("\\").join("/")
|
166
|
+
end
|
167
|
+
@html_win.load_file(html_file)
|
168
|
+
end
|
169
|
+
|
170
|
+
def on_open_url
|
171
|
+
url = Wx::get_text_from_user('Enter URL to open', 'Enter URL')
|
172
|
+
if not url.empty?
|
173
|
+
uri = URI.parse(url)
|
174
|
+
uri.path = '/' if uri.path.empty?
|
175
|
+
@html_win.load_page_from_uri(uri)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
# show an 'About' dialog
|
180
|
+
def on_about
|
181
|
+
msg = sprintf("This is the About dialog of the HTML sample.\n" \
|
182
|
+
"Welcome to wxRuby, version %s", Wx::WXRUBY_VERSION)
|
183
|
+
|
184
|
+
# create a simple message dialog with OK button
|
185
|
+
about_dlg = Wx::MessageDialog.new( self, msg, 'About WxRuby HTML',
|
186
|
+
Wx::OK|Wx::ICON_INFORMATION )
|
187
|
+
about_dlg.show_modal()
|
188
|
+
about_dlg.destroy()
|
189
|
+
end
|
190
|
+
|
191
|
+
def on_preview
|
192
|
+
print = Wx::HtmlEasyPrinting.new('Print HTML', self)
|
193
|
+
print.preview_text(@html_win.html_src)
|
194
|
+
end
|
195
|
+
|
196
|
+
def on_print
|
197
|
+
print = Wx::HtmlEasyPrinting.new('Print HTML', self)
|
198
|
+
print.print_text(@html_win.html_src)
|
199
|
+
end
|
200
|
+
|
201
|
+
# utility function to find an icon relative to this ruby script
|
202
|
+
def local_icon_file(icon_name)
|
203
|
+
File.join( File.dirname(__FILE__), icon_name)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
# Wx::App is the container class for any wxruby app - only a single
|
208
|
+
# instance is required
|
209
|
+
class HtmlApp < Wx::App
|
210
|
+
def on_init
|
211
|
+
frame = HtmlFrame.new("Minimal wxRuby App",
|
212
|
+
Wx::Point.new(50, 50),
|
213
|
+
Wx::Size.new(450, 340))
|
214
|
+
set_app_name('HtmlDemo')
|
215
|
+
# required
|
216
|
+
frame.show()
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
# Create an instance ...
|
221
|
+
app = HtmlApp.new
|
222
|
+
# ... and run the application
|
223
|
+
app.main_loop()
|
224
|
+
|
225
|
+
__END__
|
226
|
+
<html>
|
227
|
+
<head>
|
228
|
+
<title>WxRuby HTML Demo</title>
|
229
|
+
</head>
|
230
|
+
|
231
|
+
<body bgcolor="#ffffff">
|
232
|
+
<h1>The HtmlWindow widget</h1>
|
233
|
+
<p>This is a very simple demonstration of
|
234
|
+
<strong>Wx::HtmlWindow</strong>, a control for displaying hypertext. The
|
235
|
+
control understands most HTML tags, including links, tables, images,
|
236
|
+
lists and the venerable FONT tag. It does not know about CSS or
|
237
|
+
Javascript; it is not really intended for building a general-purpose
|
238
|
+
web browser.</p>
|
239
|
+
<h2>This demo</h2>
|
240
|
+
<p>In this demo you can open local files for viewing (by choosing the
|
241
|
+
File / Open). If you have an internet connection http:// links will be
|
242
|
+
downloaded as well. Its features are otherwise limited - for example,
|
243
|
+
this example doesn't know about HTML anchor targets, because it has
|
244
|
+
over-ridden default link handling to show how to subclass and
|
245
|
+
specialise HtmlWindow in Ruby.</a>
|
246
|
+
<h2>Html Easy Printing</h2>
|
247
|
+
<p>A useful feature included with WxRuby is a simple interface for
|
248
|
+
printing HTML. You can see this in action by choosing 'Print' or
|
249
|
+
'Preview' from the File menu.</p>
|
250
|
+
<h3>Further information</h3>
|
251
|
+
<p>Here's a table with some links</p>
|
252
|
+
<table border="1">
|
253
|
+
<tr>
|
254
|
+
<td>WxRuby online documentation</td>
|
255
|
+
<td><a href="http://wxruby.rubyforge.org/doc/">http://wxruby.rubyforge.org/doc/</a></td>
|
256
|
+
</tr>
|
257
|
+
<tr>
|
258
|
+
<td>WxRuby Wiki</td>
|
259
|
+
<td><a href="http://wxruby.rubyforge.org/wiki/wiki.pl">http://wxruby.rubyforge.org/wiki/wiki.pl</a></td>
|
260
|
+
</tr>
|
261
|
+
</table>
|
262
|
+
|
263
|
+
</body>
|
264
|
+
</html>
|
@@ -0,0 +1,181 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# wxRuby2 Sample Code. Copyright (c) 2004-2006 Kevin B. Smith
|
3
|
+
# Freely reusable code: see SAMPLES-LICENSE.TXT for details
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'wx'
|
7
|
+
rescue LoadError => no_wx_err
|
8
|
+
begin
|
9
|
+
require 'rubygems'
|
10
|
+
require 'wx'
|
11
|
+
rescue LoadError
|
12
|
+
raise no_wx_err
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
#
|
17
|
+
# Basic Frame Class. This creates the dialog window
|
18
|
+
#
|
19
|
+
class SimpleFrame < Wx::Frame
|
20
|
+
|
21
|
+
FILE_DIALOG, FILE_ABOUT, FILE_QUIT = [0,Wx::ID_ABOUT,Wx::ID_EXIT]
|
22
|
+
|
23
|
+
def initialize(parent)
|
24
|
+
# To load a layout defined in XRC into a Ruby subclass of Frame,
|
25
|
+
# first call the empty constructor. All the details of size,
|
26
|
+
# title, position and so on are loaded from the XRC by the call to
|
27
|
+
# load_frame_subclass. Using a non-empty constructor will cause
|
28
|
+
# errors on GTK.
|
29
|
+
super()
|
30
|
+
$xml.load_frame_subclass(self,nil,'ID_FRAME')
|
31
|
+
|
32
|
+
# Create a new menu
|
33
|
+
bar = Wx::MenuBar.new
|
34
|
+
menu = Wx::Menu.new
|
35
|
+
menu.append(FILE_ABOUT,"About...")
|
36
|
+
menu.append_separator
|
37
|
+
menu.append(FILE_QUIT,"Quit")
|
38
|
+
bar.append(menu,"File")
|
39
|
+
|
40
|
+
set_menu_bar(bar)
|
41
|
+
|
42
|
+
# Assign the menu events
|
43
|
+
evt_menu(FILE_ABOUT) do
|
44
|
+
Wx::message_box("wxRuby Listbook sample\nby Sean Long", "About Listbook", Wx::OK | Wx::ICON_INFORMATION, self)
|
45
|
+
end
|
46
|
+
evt_menu(FILE_QUIT) do
|
47
|
+
Wx::get_app.exit_main_loop()
|
48
|
+
end
|
49
|
+
evt_close() do
|
50
|
+
Wx::get_app.exit_main_loop()
|
51
|
+
end
|
52
|
+
|
53
|
+
# Variables not in tabs
|
54
|
+
@listbook = xrcid_to_window('ID_LISTBOOK')
|
55
|
+
@text_output = xrcid_to_window('ID_ORDER_TEXTCTRL')
|
56
|
+
|
57
|
+
# Variables for widgets in Pizza tab
|
58
|
+
@pizza_size = xrcid_to_window('ID_PIZZA_SIZE_CHOICE')
|
59
|
+
@pizza_crust = xrcid_to_window('ID_PIZZA_CRUST_CHOICE')
|
60
|
+
@pizza_sauce = xrcid_to_window('ID_PIZZA_SAUCE_CHOICE')
|
61
|
+
@pizza_cheese = xrcid_to_window('ID_PIZZA_CHEESE_CHOICE')
|
62
|
+
@pizza_toppings = []
|
63
|
+
3.times do |i|
|
64
|
+
@pizza_toppings << xrcid_to_window("ID_PIZZA_TOPPING_#{i+1}_CHOICE")
|
65
|
+
end
|
66
|
+
|
67
|
+
# fill in toppings
|
68
|
+
toppings = ['pepperoni','sausage','italian sausage','olives',
|
69
|
+
'mushrooms','artichoke','extra cheese','']
|
70
|
+
toppings.each do |top_name|
|
71
|
+
@pizza_toppings.each do |top_obj|
|
72
|
+
top_obj.append(top_name)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
index = 0
|
77
|
+
@pizza_toppings.each do |obj|
|
78
|
+
obj.set_selection(index)
|
79
|
+
index += 1
|
80
|
+
end
|
81
|
+
|
82
|
+
# Events for pizza tab
|
83
|
+
evt_button( Wx::xrcid('ID_PIZZA_BUTTON') ) do |event|
|
84
|
+
#get selections and add to order
|
85
|
+
order_string = @text_output.get_value
|
86
|
+
if order_string != "" then order_string << "\n" end
|
87
|
+
order_string << "One #{@pizza_size.get_string_selection} pizza with:\n"
|
88
|
+
order_string << @pizza_crust.get_string_selection + " crust" + "\n"
|
89
|
+
order_string << @pizza_sauce.get_string_selection + " sauce" +"\n"
|
90
|
+
order_string << @pizza_cheese.get_string_selection + " and" + "\n"
|
91
|
+
@pizza_toppings.each { |obj| order_string << obj.get_string_selection + "\n" }
|
92
|
+
|
93
|
+
@text_output.set_value(order_string)
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
# Variables for widgets in Drink tab
|
98
|
+
@drink_size = xrcid_to_window('ID_DRINK_SIZE_CHOICE')
|
99
|
+
@drink_type = xrcid_to_window('ID_DRINK_TYPE_CHOICE')
|
100
|
+
|
101
|
+
# Events for drink tab
|
102
|
+
evt_button(Wx::xrcid('ID_DRINK_BUTTON')) do |event|
|
103
|
+
#get selections and add to order
|
104
|
+
order_string = @text_output.get_value
|
105
|
+
if order_string != "" then order_string << "\n" end
|
106
|
+
|
107
|
+
order_string << "One #{@drink_size.get_string_selection} #{@drink_type.get_string_selection }.\n"
|
108
|
+
|
109
|
+
@text_output.set_value(order_string)
|
110
|
+
end
|
111
|
+
|
112
|
+
# Variables for widgets in Ice Cream tab
|
113
|
+
@ice_cream_size = xrcid_to_window('ID_ICE_CREAM_SIZE_CHOICE')
|
114
|
+
@ice_cream_type = xrcid_to_window('ID_ICE_CREAM_TYPE_CHOICE')
|
115
|
+
@ice_cream_toppings = []
|
116
|
+
4.times do |i|
|
117
|
+
@ice_cream_toppings <<
|
118
|
+
xrcid_to_window("ID_ICE_CREAM_TOPPING_#{i+1}_CHOICE")
|
119
|
+
end
|
120
|
+
|
121
|
+
toppings = ['','m&m\'s','chocolate chips','fudge','nuts','cherry','whip cream']
|
122
|
+
toppings.each do |top_name|
|
123
|
+
@ice_cream_toppings.each do |top_obj|
|
124
|
+
top_obj.append(top_name)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
@ice_cream_toppings.each { |obj| obj.set_selection(0) }
|
128
|
+
|
129
|
+
# Events for ice cream tab
|
130
|
+
evt_button(Wx::xrcid('ID_ICE_CREAM_BUTTON')) do |event|
|
131
|
+
#get selections and add to order
|
132
|
+
order_string = @text_output.get_value
|
133
|
+
if order_string != "" then order_string << "\n" end
|
134
|
+
|
135
|
+
order_string << "One #{@ice_cream_size.get_string_selection} #{@ice_cream_type.get_string_selection} ice cream:\n"
|
136
|
+
@ice_cream_toppings.each { |obj| order_string << obj.get_string_selection + "\n" }
|
137
|
+
|
138
|
+
@text_output.set_value(order_string)
|
139
|
+
end
|
140
|
+
|
141
|
+
evt_listbook_page_changed(Wx::xrcid('ID_LISTBOOK')) do |event|
|
142
|
+
tab_number = event.get_selection
|
143
|
+
order_string = @text_output.get_value
|
144
|
+
order_string << "moved to tab = #{@listbook.get_page_text(tab_number)} \n"
|
145
|
+
@text_output.set_value(order_string)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
# Converts a XRCID id - as used in wxWidget's XML format - into the
|
150
|
+
# correct ruby window
|
151
|
+
def xrcid_to_window(xrc_id)
|
152
|
+
Wx::Window.find_window_by_id(Wx::xrcid(xrc_id), self)
|
153
|
+
end
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
#
|
158
|
+
# Application class.
|
159
|
+
#
|
160
|
+
class XrcApp < Wx::App
|
161
|
+
|
162
|
+
def on_init
|
163
|
+
# Create a resource handler
|
164
|
+
$xml = Wx::XmlResource.get();
|
165
|
+
$xml.init_all_handlers();
|
166
|
+
|
167
|
+
# Load a resource file from the script's directory
|
168
|
+
xrc_file = File.join( File.dirname( __FILE__ ), 'listbook.xrc' )
|
169
|
+
|
170
|
+
$xml.load(xrc_file)
|
171
|
+
|
172
|
+
|
173
|
+
# Show the main frame.
|
174
|
+
$main = SimpleFrame.new(self)
|
175
|
+
$main.show(true)
|
176
|
+
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
|
181
|
+
XrcApp.new().main_loop()
|
@@ -0,0 +1,370 @@
|
|
1
|
+
<?xml version="1.0" encoding="ISO-8859-1"?>
|
2
|
+
<resource version="2.3.0.1" xmlns="http://www.wxwidgets.org/wxxrc">
|
3
|
+
<object class="wxFrame" name="ID_FRAME" subclass="MyFrame">
|
4
|
+
<style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX</style>
|
5
|
+
<size>400,300d</size>
|
6
|
+
<title>Pizza Palace</title>
|
7
|
+
<object class="wxPanel" name="ID_MAIN_PANEL">
|
8
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
9
|
+
<object class="wxBoxSizer">
|
10
|
+
<orient>wxVERTICAL</orient>
|
11
|
+
<object class="sizeritem">
|
12
|
+
<flag>wxGROW|wxALL</flag>
|
13
|
+
<border>5</border>
|
14
|
+
<option>2</option>
|
15
|
+
<object class="wxListbook" name="ID_LISTBOOK">
|
16
|
+
<pos>200,200d</pos>
|
17
|
+
<style>wxLB_LEFT</style>
|
18
|
+
<object class="listbookpage">
|
19
|
+
<label>Pizza</label>
|
20
|
+
<object class="wxPanel" name="ID_PANEL_PIZZA">
|
21
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
22
|
+
<object class="wxFlexGridSizer">
|
23
|
+
<cols>2</cols>
|
24
|
+
<rows>2</rows>
|
25
|
+
<vgap>0</vgap>
|
26
|
+
<hgap>0</hgap>
|
27
|
+
<growablecols>1</growablecols>
|
28
|
+
<growablerows>7</growablerows>
|
29
|
+
<object class="sizeritem">
|
30
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
31
|
+
<border>5</border>
|
32
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
33
|
+
<label>Your pizza size:</label>
|
34
|
+
</object>
|
35
|
+
</object>
|
36
|
+
<object class="sizeritem">
|
37
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
38
|
+
<border>5</border>
|
39
|
+
<object class="wxChoice" name="ID_PIZZA_SIZE_CHOICE">
|
40
|
+
<content>
|
41
|
+
<item>small</item>
|
42
|
+
<item>medium</item>
|
43
|
+
<item>large</item>
|
44
|
+
<item>x-large</item>
|
45
|
+
</content>
|
46
|
+
<selection>1</selection>
|
47
|
+
</object>
|
48
|
+
</object>
|
49
|
+
<object class="sizeritem">
|
50
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
51
|
+
<border>5</border>
|
52
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
53
|
+
<label>Your preferred crust style:</label>
|
54
|
+
</object>
|
55
|
+
</object>
|
56
|
+
<object class="sizeritem">
|
57
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
58
|
+
<border>5</border>
|
59
|
+
<object class="wxChoice" name="ID_PIZZA_CRUST_CHOICE">
|
60
|
+
<content>
|
61
|
+
<item>thin</item>
|
62
|
+
<item>thick</item>
|
63
|
+
<item>stuffed</item>
|
64
|
+
</content>
|
65
|
+
<selection>1</selection>
|
66
|
+
</object>
|
67
|
+
</object>
|
68
|
+
<object class="sizeritem">
|
69
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
70
|
+
<border>5</border>
|
71
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
72
|
+
<label>Your sauce type:</label>
|
73
|
+
</object>
|
74
|
+
</object>
|
75
|
+
<object class="sizeritem">
|
76
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
77
|
+
<border>5</border>
|
78
|
+
<object class="wxChoice" name="ID_PIZZA_SAUCE_CHOICE">
|
79
|
+
<content>
|
80
|
+
<item>red mild</item>
|
81
|
+
<item>red spicy</item>
|
82
|
+
<item>pesto</item>
|
83
|
+
<item>creamy garlic</item>
|
84
|
+
</content>
|
85
|
+
<selection>0</selection>
|
86
|
+
</object>
|
87
|
+
</object>
|
88
|
+
<object class="sizeritem">
|
89
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
90
|
+
<border>5</border>
|
91
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
92
|
+
<label>Cheese style:</label>
|
93
|
+
</object>
|
94
|
+
</object>
|
95
|
+
<object class="sizeritem">
|
96
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
97
|
+
<border>5</border>
|
98
|
+
<object class="wxChoice" name="ID_PIZZA_CHEESE_CHOICE">
|
99
|
+
<content>
|
100
|
+
<item>no cheese</item>
|
101
|
+
<item>normal cheese</item>
|
102
|
+
<item>lots of cheese</item>
|
103
|
+
<item>I am a mouse</item>
|
104
|
+
</content>
|
105
|
+
<selection>1</selection>
|
106
|
+
</object>
|
107
|
+
</object>
|
108
|
+
<object class="sizeritem">
|
109
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
110
|
+
<border>5</border>
|
111
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
112
|
+
<label>Topping 1:</label>
|
113
|
+
</object>
|
114
|
+
</object>
|
115
|
+
<object class="sizeritem">
|
116
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
117
|
+
<border>5</border>
|
118
|
+
<object class="wxChoice" name="ID_PIZZA_TOPPING_1_CHOICE">
|
119
|
+
</object>
|
120
|
+
</object>
|
121
|
+
<object class="sizeritem">
|
122
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
123
|
+
<border>5</border>
|
124
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
125
|
+
<label>Topping 2:</label>
|
126
|
+
</object>
|
127
|
+
</object>
|
128
|
+
<object class="sizeritem">
|
129
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
130
|
+
<border>5</border>
|
131
|
+
<object class="wxChoice" name="ID_PIZZA_TOPPING_2_CHOICE">
|
132
|
+
</object>
|
133
|
+
</object>
|
134
|
+
<object class="sizeritem">
|
135
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
136
|
+
<border>5</border>
|
137
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
138
|
+
<label>Topping 3:</label>
|
139
|
+
</object>
|
140
|
+
</object>
|
141
|
+
<object class="sizeritem">
|
142
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
143
|
+
<border>5</border>
|
144
|
+
<object class="wxChoice" name="ID_PIZZA_TOPPING_3_CHOICE">
|
145
|
+
</object>
|
146
|
+
</object>
|
147
|
+
<object class="spacer">
|
148
|
+
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
149
|
+
<border>5</border>
|
150
|
+
<size>5,5d</size>
|
151
|
+
</object>
|
152
|
+
<object class="sizeritem">
|
153
|
+
<flag>wxALIGN_RIGHT|wxALIGN_BOTTOM|wxALL</flag>
|
154
|
+
<border>5</border>
|
155
|
+
<object class="wxButton" name="ID_PIZZA_BUTTON">
|
156
|
+
<label>Add to order</label>
|
157
|
+
</object>
|
158
|
+
</object>
|
159
|
+
</object>
|
160
|
+
</object>
|
161
|
+
</object>
|
162
|
+
<object class="listbookpage">
|
163
|
+
<label>Drink</label>
|
164
|
+
<object class="wxPanel" name="ID_PANEL_DRINK">
|
165
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
166
|
+
<object class="wxFlexGridSizer">
|
167
|
+
<cols>2</cols>
|
168
|
+
<rows>2</rows>
|
169
|
+
<vgap>0</vgap>
|
170
|
+
<hgap>0</hgap>
|
171
|
+
<growablecols>1</growablecols>
|
172
|
+
<growablerows>2</growablerows>
|
173
|
+
<object class="sizeritem">
|
174
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
175
|
+
<border>5</border>
|
176
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
177
|
+
<label>Your drink size:</label>
|
178
|
+
</object>
|
179
|
+
</object>
|
180
|
+
<object class="sizeritem">
|
181
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
182
|
+
<border>5</border>
|
183
|
+
<object class="wxChoice" name="ID_DRINK_SIZE_CHOICE">
|
184
|
+
<content>
|
185
|
+
<item>small</item>
|
186
|
+
<item>medium</item>
|
187
|
+
<item>large</item>
|
188
|
+
<item>gut buster</item>
|
189
|
+
</content>
|
190
|
+
<selection>1</selection>
|
191
|
+
</object>
|
192
|
+
</object>
|
193
|
+
<object class="sizeritem">
|
194
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
195
|
+
<border>5</border>
|
196
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
197
|
+
<label>Your preferred drink:</label>
|
198
|
+
</object>
|
199
|
+
</object>
|
200
|
+
<object class="sizeritem">
|
201
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
202
|
+
<border>5</border>
|
203
|
+
<object class="wxChoice" name="ID_DRINK_TYPE_CHOICE">
|
204
|
+
<content>
|
205
|
+
<item>soda</item>
|
206
|
+
<item>tea</item>
|
207
|
+
<item>lemonade</item>
|
208
|
+
<item>coffee</item>
|
209
|
+
<item>water</item>
|
210
|
+
</content>
|
211
|
+
<selection>0</selection>
|
212
|
+
</object>
|
213
|
+
</object>
|
214
|
+
<object class="spacer">
|
215
|
+
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
216
|
+
<border>5</border>
|
217
|
+
<size>5,5d</size>
|
218
|
+
</object>
|
219
|
+
<object class="sizeritem">
|
220
|
+
<flag>wxALIGN_RIGHT|wxALIGN_BOTTOM|wxALL</flag>
|
221
|
+
<border>5</border>
|
222
|
+
<object class="wxButton" name="ID_DRINK_BUTTON">
|
223
|
+
<label>Add to order</label>
|
224
|
+
</object>
|
225
|
+
</object>
|
226
|
+
</object>
|
227
|
+
</object>
|
228
|
+
</object>
|
229
|
+
<object class="listbookpage">
|
230
|
+
<label>Ice Cream</label>
|
231
|
+
<object class="wxPanel" name="ID_PANEL_ICE_CREAM">
|
232
|
+
<pos>200,200d</pos>
|
233
|
+
<style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style>
|
234
|
+
<object class="wxFlexGridSizer">
|
235
|
+
<cols>2</cols>
|
236
|
+
<rows>2</rows>
|
237
|
+
<vgap>0</vgap>
|
238
|
+
<hgap>0</hgap>
|
239
|
+
<growablecols>1</growablecols>
|
240
|
+
<growablerows>6</growablerows>
|
241
|
+
<object class="sizeritem">
|
242
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
243
|
+
<border>5</border>
|
244
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
245
|
+
<label>Your ice cream size:</label>
|
246
|
+
</object>
|
247
|
+
</object>
|
248
|
+
<object class="sizeritem">
|
249
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
250
|
+
<border>5</border>
|
251
|
+
<object class="wxChoice" name="ID_ICE_CREAM_SIZE_CHOICE">
|
252
|
+
<content>
|
253
|
+
<item>child</item>
|
254
|
+
<item>small</item>
|
255
|
+
<item>medium</item>
|
256
|
+
<item>large</item>
|
257
|
+
</content>
|
258
|
+
<selection>2</selection>
|
259
|
+
</object>
|
260
|
+
</object>
|
261
|
+
<object class="sizeritem">
|
262
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
263
|
+
<border>5</border>
|
264
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
265
|
+
<label>Your ice cream:</label>
|
266
|
+
</object>
|
267
|
+
</object>
|
268
|
+
<object class="sizeritem">
|
269
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
270
|
+
<border>5</border>
|
271
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TYPE_CHOICE">
|
272
|
+
<content>
|
273
|
+
<item>vanilla</item>
|
274
|
+
<item>chocolate</item>
|
275
|
+
<item>strawberry</item>
|
276
|
+
<item>chocolate chip</item>
|
277
|
+
<item>cookie dough</item>
|
278
|
+
<item>cherry</item>
|
279
|
+
</content>
|
280
|
+
<selection>0</selection>
|
281
|
+
</object>
|
282
|
+
</object>
|
283
|
+
<object class="sizeritem">
|
284
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
285
|
+
<border>5</border>
|
286
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
287
|
+
<label>Topping 1:</label>
|
288
|
+
</object>
|
289
|
+
</object>
|
290
|
+
<object class="sizeritem">
|
291
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
292
|
+
<border>5</border>
|
293
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_1_CHOICE">
|
294
|
+
</object>
|
295
|
+
</object>
|
296
|
+
<object class="sizeritem">
|
297
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
298
|
+
<border>5</border>
|
299
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
300
|
+
<label>Topping 2:</label>
|
301
|
+
</object>
|
302
|
+
</object>
|
303
|
+
<object class="sizeritem">
|
304
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
305
|
+
<border>5</border>
|
306
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_2_CHOICE">
|
307
|
+
</object>
|
308
|
+
</object>
|
309
|
+
<object class="sizeritem">
|
310
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
311
|
+
<border>5</border>
|
312
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
313
|
+
<label>Topping 3:</label>
|
314
|
+
</object>
|
315
|
+
</object>
|
316
|
+
<object class="sizeritem">
|
317
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
318
|
+
<border>5</border>
|
319
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_3_CHOICE">
|
320
|
+
</object>
|
321
|
+
</object>
|
322
|
+
<object class="sizeritem">
|
323
|
+
<flag>wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL|wxADJUST_MINSIZE</flag>
|
324
|
+
<border>5</border>
|
325
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
326
|
+
<label>Topping 4:</label>
|
327
|
+
</object>
|
328
|
+
</object>
|
329
|
+
<object class="sizeritem">
|
330
|
+
<flag>wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
331
|
+
<border>5</border>
|
332
|
+
<object class="wxChoice" name="ID_ICE_CREAM_TOPPING_4_CHOICE">
|
333
|
+
</object>
|
334
|
+
</object>
|
335
|
+
<object class="spacer">
|
336
|
+
<flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL</flag>
|
337
|
+
<border>5</border>
|
338
|
+
<size>5,5d</size>
|
339
|
+
</object>
|
340
|
+
<object class="sizeritem">
|
341
|
+
<flag>wxALIGN_RIGHT|wxALIGN_BOTTOM|wxALL</flag>
|
342
|
+
<border>5</border>
|
343
|
+
<object class="wxButton" name="ID_ICE_CREAM_BUTTON">
|
344
|
+
<label>Add to order</label>
|
345
|
+
</object>
|
346
|
+
</object>
|
347
|
+
</object>
|
348
|
+
</object>
|
349
|
+
</object>
|
350
|
+
</object>
|
351
|
+
</object>
|
352
|
+
<object class="sizeritem">
|
353
|
+
<flag>wxALIGN_LEFT|wxALL|wxADJUST_MINSIZE</flag>
|
354
|
+
<border>5</border>
|
355
|
+
<object class="wxStaticText" name="wxID_STATIC">
|
356
|
+
<label>Order:</label>
|
357
|
+
</object>
|
358
|
+
</object>
|
359
|
+
<object class="sizeritem">
|
360
|
+
<flag>wxGROW|wxALL</flag>
|
361
|
+
<border>5</border>
|
362
|
+
<option>1</option>
|
363
|
+
<object class="wxTextCtrl" name="ID_ORDER_TEXTCTRL">
|
364
|
+
<style>wxTE_MULTILINE</style>
|
365
|
+
</object>
|
366
|
+
</object>
|
367
|
+
</object>
|
368
|
+
</object>
|
369
|
+
</object>
|
370
|
+
</resource>
|