wxruby-ruby19 1.9.8-x86-darwin-9 → 1.9.10-x86-darwin-9
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 +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
data/LICENSE
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
wxRuby2
|
2
|
+
Copyright (c) 2004-2007 wxRuby Development Team
|
3
|
+
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
6
|
+
in the Software without restriction, including without limitation the rights
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
9
|
+
furnished to do so, subject to the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included in
|
12
|
+
all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
20
|
+
SOFTWARE.
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
============================================================================
|
28
|
+
THE FOLLOWING IS NOT PART OF THE LICENSE, NOR IS IT LEGAL ADVICE!
|
29
|
+
|
30
|
+
wxRuby and wxWidgets
|
31
|
+
--------------------
|
32
|
+
Normally, wxRuby is distributed with a binary copy of wxWidgets. If you
|
33
|
+
distribute the wxRuby gem, you are bound to the requirements of the
|
34
|
+
copy of wxWidgets within. Fortunately, those requirements do not impose
|
35
|
+
any serious restrictions.
|
36
|
+
|
37
|
+
|
38
|
+
wxWidgets License Summary (from the wxWidgets README)
|
39
|
+
-----------------------------------------------------
|
40
|
+
In summary, the licence is LGPL plus a clause allowing unrestricted
|
41
|
+
distribution of application binaries. To answer a FAQ, you don't have to
|
42
|
+
distribute any source if you wish to write commercial applications using
|
43
|
+
wxWidgets.
|
44
|
+
|
45
|
+
|
46
|
+
Required Credits and Attribution
|
47
|
+
--------------------------------
|
48
|
+
|
49
|
+
Generally, neither wxWidgets nor wxRuby require attribution, beyond
|
50
|
+
retaining existing copyright notices. However, if you build your own
|
51
|
+
custom wxWidgets library, there may be portions that require specific
|
52
|
+
attributions or credits, such as TIFF or JPEG support. See the wxWidgets
|
53
|
+
README and license files for details.
|
data/README
ADDED
@@ -0,0 +1,297 @@
|
|
1
|
+
README for wxruby2
|
2
|
+
|
3
|
+
Version 1.9.x
|
4
|
+
|
5
|
+
This is wxruby2, the second generation of wxRuby, a library
|
6
|
+
that allows Ruby programs to use the wxWidgets GUI toolkit.
|
7
|
+
It is released under a permissive MIT-style license
|
8
|
+
(see the LICENSE file for details).
|
9
|
+
|
10
|
+
This version is a beta release, in preparation for a stable release of
|
11
|
+
wxruby version 2.0.
|
12
|
+
|
13
|
+
------------------------FAQ---------------------------
|
14
|
+
|
15
|
+
- What platforms and operating systems are supported in wxRuby2?
|
16
|
+
|
17
|
+
Currently the following are fully supported:
|
18
|
+
|
19
|
+
Windows NT/2000/XP/Vista (i686)
|
20
|
+
OS X 10.4+ (i686 and PowerPc)
|
21
|
+
Linux (i686 + AMD-64)
|
22
|
+
|
23
|
+
It is unlikely that support for old Windows OS's (3.1, 95, 98, ME)
|
24
|
+
will be added to wxRuby2 in the near future, as these operating
|
25
|
+
systems have very limited support for Unicode.
|
26
|
+
|
27
|
+
- Why would I choose wxruby over FXRuby, Ruby/GTK, or one of the other
|
28
|
+
GUI toolkits? Isn't wxruby arriving "too late"?
|
29
|
+
|
30
|
+
There are several great GUI toolkits available for Ruby, but we
|
31
|
+
like wxruby better because it has a combination of features that no
|
32
|
+
other toolkit has:
|
33
|
+
|
34
|
+
- Cross-platform (MSWindows, Mac OS X, Linux)
|
35
|
+
- Native widgets when possible
|
36
|
+
- Provides a wide selection of widgets
|
37
|
+
- Simple license that is compatible with proprietary and Free Software
|
38
|
+
- Mature foundation (wxWidgets has been around for over 10 years)
|
39
|
+
|
40
|
+
The really big feature is native widgets. The only other cross-platform
|
41
|
+
toolkits that use native widgets are either limited (Tk) or expensive if
|
42
|
+
you want to develop proprietary software (Qt). We are not saying that
|
43
|
+
those toolkits are bad! Just that wxruby offers a unique set of
|
44
|
+
features.
|
45
|
+
|
46
|
+
- Why are native widgets important or helpful?
|
47
|
+
|
48
|
+
For one thing, it means that end-users do not have to adjust to a
|
49
|
+
"foreign" interface. It also ensures maximum compatibility with
|
50
|
+
"assistive technology" such as screen readers for blind users.
|
51
|
+
It also allows apps to respect any themes the user may have chosen
|
52
|
+
through their operating system. No matter how hard a toolkit may try
|
53
|
+
to emulate a particular UI, there will always be differences in the
|
54
|
+
look or behavior.
|
55
|
+
|
56
|
+
- How does wxruby2 relate to wxruby (and the wxruby 0.6.0 release)?
|
57
|
+
|
58
|
+
wxruby2 is the "next generation" of wxruby. It is being developed
|
59
|
+
by the same wxruby team, and is intended to replace the older
|
60
|
+
code base. wxruby2 is built using SWIG, a powerful tool that makes
|
61
|
+
it much easier to create and maintain wrappers around C/C++ libraries.
|
62
|
+
|
63
|
+
- Why should I use wxruby2 instead of wxruby?
|
64
|
+
|
65
|
+
First, because development on the original wxruby codebase has stopped.
|
66
|
+
Everyone is working on wxruby2, so it will continue to improve. Beyond
|
67
|
+
that, wxruby2 has these advantages over wxruby 0.6.0:
|
68
|
+
|
69
|
+
- Available as binary gems for MSWindows, OS X, and Linux (GTK)
|
70
|
+
- Support for more classes, and more methods within classes
|
71
|
+
- Unicode support
|
72
|
+
- Vastly improved support for OS X
|
73
|
+
- Looks much better under Linux because it uses GTK+2
|
74
|
+
- Simpler and more permissive license
|
75
|
+
- Wraps wxWidgets 2.8.7 instead of the older 2.4 series
|
76
|
+
|
77
|
+
- Is wxruby2 ready for "production" use?
|
78
|
+
|
79
|
+
Yes, pretty much. This is a beta release, and there may be some bugs
|
80
|
+
in some methods, or memory leaks. This release includes all the
|
81
|
+
classes and features that are proposed for inclusion in wxruby 2.0.
|
82
|
+
|
83
|
+
It is considerably more stable and fully-featured than the old 0.6.0
|
84
|
+
release, which was never really stable enough for heavy-duty
|
85
|
+
production use.
|
86
|
+
|
87
|
+
- Does wxruby2 support the Xxx class?
|
88
|
+
|
89
|
+
See the "Documentation" section of the README file, or check the
|
90
|
+
wxruby web site: http://wxruby.org
|
91
|
+
|
92
|
+
- How are the wxruby 0.6.0 and wxruby2 licenses different?
|
93
|
+
|
94
|
+
wxruby 0.6.0 was released under the wxWindows license, which is a
|
95
|
+
modified LGPL. It is a good, fair license, allowing use in both Free
|
96
|
+
Software and proprietary applications. However, it is long and complex,
|
97
|
+
and is more appropriate for compiled code. wxruby2 is available under a
|
98
|
+
*very* simple MIT-style license, which allows just about any use with
|
99
|
+
very few restrictions.
|
100
|
+
|
101
|
+
- I am getting an error trying to compile wxruby2
|
102
|
+
|
103
|
+
Please double-check the requirements. You may be using the wrong
|
104
|
+
version of SWIG, wxWidgets, or some other tool. Double-check the
|
105
|
+
instructions on the wxRuby wiki (http://wxruby.rubyforge.org/)
|
106
|
+
|
107
|
+
If you need help, please ask your question on the wxruby mailing list
|
108
|
+
(see the link at http://wxruby.org).
|
109
|
+
|
110
|
+
- I am getting an error trying to run any wxruby2 application, such as
|
111
|
+
the samples that are included in the gem.
|
112
|
+
|
113
|
+
If you are using Linux, be sure you have configured your system to
|
114
|
+
have RUBYOPT=-rubygems. This can be done in .bashrc or /etc/environment,
|
115
|
+
depending on your distribution and preferences. [More details to follow].
|
116
|
+
|
117
|
+
- Why aren't the wx network, file, date, database and other non-GUI
|
118
|
+
classes supported?
|
119
|
+
|
120
|
+
Because Ruby has its own versions of each of them, providing
|
121
|
+
cross-platform abstractions of these functions with familiar syntax
|
122
|
+
and methods. We assume you are writing your application in Ruby, so it
|
123
|
+
makes sense to keep as much code as possible in Ruby. We have only
|
124
|
+
wrapped the wx classes that are necessary to write GUI code.
|
125
|
+
|
126
|
+
There may be some advantages to porting the Wx network classes into
|
127
|
+
ruby, if they work better with multi-(native)-threaded code. This is
|
128
|
+
currently under evaluation.
|
129
|
+
|
130
|
+
- Why has it taken so long for wxruby2 to be released?
|
131
|
+
|
132
|
+
Nobody is getting paid to develop wxruby, so each of the wxruby developers
|
133
|
+
are limited in the amount of time they can dedicate to the project. We are
|
134
|
+
always looking for more volunteers to help code, test, document, manage
|
135
|
+
the bug list, handle publicity, or do other necessary chores.
|
136
|
+
|
137
|
+
Wrapping wx is a big project that requires a wide variety of skills. As of
|
138
|
+
February 2008, the wxRuby project has over 100,000 lines of code, including
|
139
|
+
ruby, C++, and SWIG scripts. If we weren't using SWIG it would be far bigger.
|
140
|
+
|
141
|
+
|
142
|
+
For more details, see the project home page:
|
143
|
+
http://wxruby.org/
|
144
|
+
|
145
|
+
|
146
|
+
------------------------USING WXRUBY---------------------------
|
147
|
+
INSTALLING:
|
148
|
+
|
149
|
+
wxRuby is available as binary gems for MS Windows, Mac OS X, and Linux
|
150
|
+
with GTK+ 2. Unless you wish to work on wxRuby itself, we strongly
|
151
|
+
recommend installing the gem rather than building from source.
|
152
|
+
|
153
|
+
REQUIREMENTS TO CREATE AND RUN WXRUBY APPS:
|
154
|
+
|
155
|
+
- Ruby 1.8
|
156
|
+
- MS Windows NT/2000/XP/Vista, Mac OS X 10.4+, or Linux with GTK+ 2,
|
157
|
+
|
158
|
+
- On Windows, gdiplus.pll and msvcp71.dll. These are available on most
|
159
|
+
systems, but can be downloaded and installed for free from the
|
160
|
+
internet
|
161
|
+
- On Linux, libgstreamer. This can be installed from most package sources
|
162
|
+
|
163
|
+
SAMPLES:
|
164
|
+
|
165
|
+
There is a samples/ directory containing many small sample wxRuby apps
|
166
|
+
that demonstrate how to use various classes. A few samples do not work
|
167
|
+
across all platforms at this time.
|
168
|
+
|
169
|
+
The bigdemo sample is fairly comprehensive, but not all of the
|
170
|
+
sections work on all platforms.
|
171
|
+
|
172
|
+
|
173
|
+
WRITING YOUR OWN WXRUBY APP:
|
174
|
+
|
175
|
+
To use wxruby-swig in your app, use:
|
176
|
+
require 'wx'
|
177
|
+
|
178
|
+
samples/minimal.rb can be used as a template for creating your
|
179
|
+
own wxruby application.
|
180
|
+
|
181
|
+
|
182
|
+
DOCUMENTATION:
|
183
|
+
|
184
|
+
- wxRuby-specific API documentation can be found here:
|
185
|
+
|
186
|
+
http://wxruby.org/doc/
|
187
|
+
|
188
|
+
(Note: This documentation is auto-generated from the C++ wxWidgets API
|
189
|
+
docs. There are some broken links, some sample code in C++, and some
|
190
|
+
sections which do not apply to ruby. The documentation is continually
|
191
|
+
being improved.)
|
192
|
+
|
193
|
+
- The latest version of the documentation can be downloaded from the
|
194
|
+
wxRuby 'Files' section on Rubyforge.
|
195
|
+
|
196
|
+
http://www.rubyforge.org/frs/?group_id=35
|
197
|
+
|
198
|
+
- Tables summarizing which wx classes are and are not supported can
|
199
|
+
be found here:
|
200
|
+
|
201
|
+
http://wxruby.org/wiki/wiki.pl?ClassesSupportedByCategory
|
202
|
+
|
203
|
+
- Most wxWidgets and wxPython tutorials and references can also be used, if
|
204
|
+
you remember that wxRuby uses ruby_style_naming for methods and variables
|
205
|
+
instead of MixedCase as used by wxWidgets.
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
API DIFFERENCES FROM WXWIDGETS:
|
210
|
+
- In many cases, wxRuby follows the lead of wxPython (or in some cases,
|
211
|
+
wxPerl), adjusting certain method calls when the C++ style doesn't fit
|
212
|
+
dynamic languages.
|
213
|
+
- Since initialize is reserved in ruby, use SplitterWindow#init instead.
|
214
|
+
- Many wx classes have not been wrapped because native ruby classes work
|
215
|
+
as well or better. These include wxDateTime, wxString, networking
|
216
|
+
classes, database classes.
|
217
|
+
- log_message and log_status take a single string parameter,
|
218
|
+
rather than a format string followed by additional values
|
219
|
+
to be inserted. Use Ruby's sprintf if required.
|
220
|
+
|
221
|
+
----------------------COMPILING WXRUBY--------------------------
|
222
|
+
REQUIREMENTS TO COMPILE/BUILD WXRUBY ITSELF
|
223
|
+
|
224
|
+
- rake
|
225
|
+
- SWIG, version 1.3.32 or later. Earlier versions will not work correctly.
|
226
|
+
- wxWidgets 2.8.x SDK. See further information on the wxruby website for
|
227
|
+
recommended compile-time options for wxWidgets.
|
228
|
+
|
229
|
+
|
230
|
+
OBTAINING THE SOURCE:
|
231
|
+
|
232
|
+
Source code is hosted in Subversion at rubyforge.org. See the links on
|
233
|
+
the wxruby web site (http://wxruby.org). Check out the wxruby2
|
234
|
+
Subversion module (not the old wxruby module).
|
235
|
+
|
236
|
+
|
237
|
+
BUILDING:
|
238
|
+
|
239
|
+
From the top-level directory (typically wxruby2/),
|
240
|
+
just start the rake build with the command:
|
241
|
+
|
242
|
+
rake
|
243
|
+
|
244
|
+
There is no ./configure step, nor do you need to run ruby extconf.rb.
|
245
|
+
|
246
|
+
|
247
|
+
INSTALLING THE LIBRARY:
|
248
|
+
|
249
|
+
You can install the library using:
|
250
|
+
rake install
|
251
|
+
|
252
|
+
Note that on some systems you may need to be "root" to do this.
|
253
|
+
To manually install, copy all the files in the lib/ subdirectory
|
254
|
+
to somewhere on your ruby library path, such as a ruby extensions
|
255
|
+
directory.
|
256
|
+
|
257
|
+
|
258
|
+
PORTING TO OTHER PLATFORMS
|
259
|
+
|
260
|
+
Platform-dependent rakefiles are used to set up compiler-specific
|
261
|
+
settings. The following platforms are currently fully supported:
|
262
|
+
|
263
|
+
Mac OSX (gcc): rakemacosx.rb
|
264
|
+
MS Windows (VC++): rakemswin.rb
|
265
|
+
Linux (GTK2 + gcc): rakelinux.rb
|
266
|
+
|
267
|
+
For other platforms, you may need to edit the appropriate
|
268
|
+
platform-dependent rake file if your system is not yet supported, or if
|
269
|
+
it is unusual. These files are found in the rake subdirectory:
|
270
|
+
|
271
|
+
MS Windows BC++: rakebccwin.rb
|
272
|
+
MS Windows MingGW: rakemingw.rb
|
273
|
+
MS Windows Cygwin: rakecygwin.rb
|
274
|
+
NetBSD: rakenetbsd.rb
|
275
|
+
|
276
|
+
When editing a platform-dependent rakefile, you might
|
277
|
+
merely need to set one or more of the following variables:
|
278
|
+
|
279
|
+
$extra_cppflags
|
280
|
+
$extra_ldflags
|
281
|
+
$extra_objs
|
282
|
+
$extra_libs
|
283
|
+
|
284
|
+
|
285
|
+
CREDITS
|
286
|
+
|
287
|
+
Kevin Smith set up the wxruby2 project using SWIG and did much of the
|
288
|
+
work that still forms the core of the library in its present form. Over
|
289
|
+
the years dozens of volunteers have contributed invaluable patches and
|
290
|
+
new functionality. The list is too long to give here, but their
|
291
|
+
contributions are recorded in the wxruby mailing list archives.
|
292
|
+
|
293
|
+
-----------------------------------------------------------
|
294
|
+
|
295
|
+
LEAD MAINTAINER:
|
296
|
+
Alex Fenton
|
297
|
+
alex at pressure dot to
|
data/lib/wx.rb
CHANGED
@@ -45,8 +45,8 @@ require 'wx/keyword_defs'
|
|
45
45
|
# Wx clean-up routines called by Wx::App#on_exit. This can under some
|
46
46
|
# circumstances cause crashes as the application ends.
|
47
47
|
Kernel::at_exit do
|
48
|
-
#
|
49
|
-
if not $__wx_app_ended__
|
48
|
+
# These are set at App startup and wxRuby shut down respectively - see App.i
|
49
|
+
if Wx::const_defined?(:THE_APP) and not $__wx_app_ended__
|
50
50
|
Wx::THE_APP.on_exit
|
51
51
|
end
|
52
52
|
end
|
data/lib/wx/accessors.rb
CHANGED
@@ -42,8 +42,14 @@ module WxRubyStyleAccessors
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
|
45
|
+
# Allow Wx-global functions to be accessed with nice syntax
|
46
|
+
module Wx
|
47
|
+
extend WxRubyStyleAccessors
|
48
|
+
end
|
46
49
|
|
50
|
+
# Apply the syntax extensions to every class, both class methods and
|
51
|
+
# instance methods
|
52
|
+
all_classes = Wx::constants.collect { | c | Wx::const_get(c) }.grep(Class)
|
47
53
|
all_classes.each do | klass |
|
48
54
|
klass.class_eval do
|
49
55
|
include WxRubyStyleAccessors
|
data/lib/wx/classes/app.rb
CHANGED
@@ -37,9 +37,15 @@ class Wx::App
|
|
37
37
|
# second. This should help ferret out bugs in memory management more
|
38
38
|
# quickly.
|
39
39
|
def gc_stress(interval = 1)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
# Ruby 1.9 provides this built-in version, but doesn't like the 1.8
|
41
|
+
# version at all - results in frequent segfaults.
|
42
|
+
if RUBY_VERSION >= "1.9.0"
|
43
|
+
GC.stress
|
44
|
+
else # Ruby 1.8
|
45
|
+
t = Wx::Timer.new(self, 9999)
|
46
|
+
evt_timer(9999) { Thread.pass }
|
47
|
+
Thread.new { loop { sleep interval; GC.start } }
|
48
|
+
t.start(100)
|
49
|
+
end
|
44
50
|
end
|
45
51
|
end
|
data/lib/wx/classes/bitmap.rb
CHANGED
@@ -1,4 +1,25 @@
|
|
1
|
+
# A platform-dependent image that can be drawn on the screen
|
1
2
|
class Wx::Bitmap
|
3
|
+
# Allow wxRuby to guess the type of an image file from its extension.
|
4
|
+
BITMAP_TYPE_GUESS = {
|
5
|
+
'bmp' => Wx::BITMAP_TYPE_BMP,
|
6
|
+
'gif' => Wx::BITMAP_TYPE_GIF,
|
7
|
+
'ico' => Wx::BITMAP_TYPE_ICO,
|
8
|
+
'jpeg' => Wx::BITMAP_TYPE_JPEG,
|
9
|
+
'jpg' => Wx::BITMAP_TYPE_JPEG,
|
10
|
+
'pbm' => Wx::BITMAP_TYPE_PNM,
|
11
|
+
'pcx' => Wx::BITMAP_TYPE_PCX,
|
12
|
+
'pgm' => Wx::BITMAP_TYPE_PNM,
|
13
|
+
'png' => Wx::BITMAP_TYPE_PNG,
|
14
|
+
'pnm' => Wx::BITMAP_TYPE_PNM,
|
15
|
+
'ppm' => Wx::BITMAP_TYPE_PNM,
|
16
|
+
'tga' => Wx::BITMAP_TYPE_TGA,
|
17
|
+
'tif' => Wx::BITMAP_TYPE_TIF,
|
18
|
+
'tiff' => Wx::BITMAP_TYPE_TIF,
|
19
|
+
'xbm' => Wx::BITMAP_TYPE_XBM,
|
20
|
+
'xpm' => Wx::BITMAP_TYPE_XPM
|
21
|
+
}
|
22
|
+
|
2
23
|
# Constructor copying data from an image
|
3
24
|
def self.from_image(img, depth = -1)
|
4
25
|
new(img, depth)
|
@@ -6,13 +27,20 @@ class Wx::Bitmap
|
|
6
27
|
|
7
28
|
# Redefine the initialize method so it raises an exception if a
|
8
29
|
# non-existent file is given to the constructor; otherwise, wx Widgets
|
9
|
-
# just carries on with an empty bitmap, which may cause faults
|
30
|
+
# just carries on with an empty bitmap, which may cause faults
|
31
|
+
# later. Also, be helpful and try to guess the bitmap type from the
|
32
|
+
# filename if it's not specified
|
10
33
|
wx_init = self.instance_method(:initialize)
|
11
34
|
define_method(:initialize) do | *args |
|
35
|
+
# If creating from a file, check it exists
|
12
36
|
if args[0].kind_of? String
|
13
37
|
if not File.exist?( File.expand_path(args[0]) )
|
14
38
|
Kernel.raise(ArgumentError, "Bitmap file does not exist: #{args[0]}")
|
15
39
|
end
|
40
|
+
# If type not specified, try to guess it from the file extension
|
41
|
+
if not args[1] and file_ext = args[0][/\w+$/]
|
42
|
+
args[1] = BITMAP_TYPE_GUESS[file_ext.downcase]
|
43
|
+
end
|
16
44
|
end
|
17
45
|
wx_init.bind(self).call(*args)
|
18
46
|
end
|