wxruby-ruby19 1.9.10-x86-mingw32 → 2.0.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/INSTALL +254 -0
- data/README +184 -283
- data/lib/wx/accessors.rb +19 -7
- data/lib/wx/classes/bitmap.rb +3 -0
- data/lib/wx/classes/clipboard.rb +28 -4
- data/lib/wx/classes/image.rb +5 -0
- data/lib/wx/classes/toolbar.rb +7 -4
- data/lib/wx/classes/validator.rb +7 -0
- data/lib/wx/keyword_defs.rb +19 -2
- data/lib/wx/version.rb +1 -1
- data/lib/wxruby2.so +0 -0
- data/samples/aui/aui.rb +21 -21
- data/samples/calendar/calendar.rb +1 -1
- data/samples/drawing/{images.rb → bitmap.rb} +10 -3
- data/samples/drawing/bitmap_image.rb +92 -0
- data/samples/drawing/maths_images.rb +265 -0
- data/samples/drawing/ruby-logo.jpg +0 -0
- data/samples/drawing/wxruby-logo.png +0 -0
- data/samples/text/document-open.png +0 -0
- data/samples/text/document-save.png +0 -0
- data/samples/text/edit-copy.png +0 -0
- data/samples/text/edit-cut.png +0 -0
- data/samples/text/edit-paste.png +0 -0
- data/samples/text/edit-redo.png +0 -0
- data/samples/text/edit-undo.png +0 -0
- data/samples/text/preferences-desktop-font.png +0 -0
- data/samples/text/rich_textctrl.rb +234 -42
- metadata +17 -4
- data/samples/drawing/paperclip.png +0 -0
data/INSTALL
ADDED
@@ -0,0 +1,254 @@
|
|
1
|
+
= Installing wxRuby
|
2
|
+
|
3
|
+
wxRuby is fully supported on Ruby 1.8 and Ruby 1.9.1. There are two
|
4
|
+
ways of installing wxRuby2:
|
5
|
+
|
6
|
+
* Using Rubygems to install a precompiled binary gem
|
7
|
+
* Obtaining the sources and compiling wxRuby yourself
|
8
|
+
|
9
|
+
For most users (especially on Windows and OS X), using rubygems will be
|
10
|
+
most convenient, and is recommended. Compiling may be needed on systems
|
11
|
+
which have very varied configurations (in particular, Linux). You'll
|
12
|
+
also need to compile yourself if you want to use the latest development
|
13
|
+
code, rather than a numbered release.
|
14
|
+
|
15
|
+
= Installing wxRuby using Rubygems
|
16
|
+
|
17
|
+
On Windows and OS X, the only normal prerequisite is Ruby itself and
|
18
|
+
rubygems. On Linux, you will need your distro's wx library
|
19
|
+
installed. See below for platform-specific information.
|
20
|
+
|
21
|
+
== Temporary instructions for gem installation
|
22
|
+
|
23
|
+
As of February 2009, Rubygems has a serious bug which means that the
|
24
|
+
latest version of specific gems are not correctly offered by the
|
25
|
+
automatic installation procedure. This affects a variety of gems and
|
26
|
+
ruby and rubygems versions. Please follow these temporary instructions
|
27
|
+
until this is resolved:
|
28
|
+
|
29
|
+
Download the correct gem file for your platform from the wxRuby download
|
30
|
+
page: http://rubyforge.org/frs/?group_id=35
|
31
|
+
|
32
|
+
Gems for 1.8 are named: wxruby-[version]-[processor]-[os].gem
|
33
|
+
Gems for 1.9 are named: wxruby-ruby19-[version]-[processor]-[os].gem
|
34
|
+
|
35
|
+
Choose the latest version available for your processor and operating
|
36
|
+
system: mswin32 or mingw32 for Windows, darwin for for OS X, linux for
|
37
|
+
Linux.
|
38
|
+
|
39
|
+
Save the file to your local hard drive. Open a command prompt or
|
40
|
+
terminal, go to the directory where the gem file is saved, and do:
|
41
|
+
|
42
|
+
gem install <filename>
|
43
|
+
|
44
|
+
For example:
|
45
|
+
|
46
|
+
gem install wxruby-1.9.10-x86-mswin32-60.gem
|
47
|
+
|
48
|
+
On Linux and OS X, you may need to run this command as a privileged user, eg
|
49
|
+
|
50
|
+
sudo gem install <filename>
|
51
|
+
|
52
|
+
== Proper instructions for gem installation
|
53
|
+
|
54
|
+
To install wxRuby using Rubygems, open a command prompt and type:
|
55
|
+
|
56
|
+
gem install wxruby # Ruby 1.8
|
57
|
+
gem install wxruby-ruby19 # Ruby 1.9
|
58
|
+
|
59
|
+
If you are on Linux or OS X, you will likely need to run this as a
|
60
|
+
privileged user, something like:
|
61
|
+
|
62
|
+
sudo gem install wxruby
|
63
|
+
|
64
|
+
Wait whilst rubygems updates its gem list. You will then be offered a
|
65
|
+
choice of gems to install. Choose the most up-to-date one available for
|
66
|
+
your platform. Rubygems will download and install the desired gem.
|
67
|
+
|
68
|
+
On Linux, you should also install your distro's wxwidgets 2.8
|
69
|
+
libraries. On Windows and OS X, the gem contains everything needed to
|
70
|
+
create and run wxRuby applications; you're ready to go.
|
71
|
+
|
72
|
+
=== Gem Installation Notes - Microsoft Windows
|
73
|
+
|
74
|
+
* x86-mswin32 gems are for ruby on Windows NT/2000/XP/Vista on Intel-32,
|
75
|
+
built with the Microsoft compiler. This includes current releases of
|
76
|
+
the One-Click Installer.
|
77
|
+
|
78
|
+
* x86-mingw gems are compatible with ruby built on Windows using the
|
79
|
+
MingW compiler
|
80
|
+
|
81
|
+
* If using NT or 2000, you may need to install the free library
|
82
|
+
gdiplus.dll in your Windows/system32 directory.
|
83
|
+
|
84
|
+
* If using a recent fresh install of NT, 2000 or XP, you may need to
|
85
|
+
install the dll msvcp71.dll. This can be downloaded for free.
|
86
|
+
|
87
|
+
* To get native XP-style widgets on XP you need to create a manifest.exe
|
88
|
+
file for ruby; see here for more information:
|
89
|
+
http://rubyonwindows.blogspot.com/2007/10/windows-xp-visual-style-controls-with.html
|
90
|
+
|
91
|
+
* Unfortunately, wxRuby2 does not currently work on Windows 3.1, 98 or
|
92
|
+
Me, as these do not have adequate unicode support. The old
|
93
|
+
wxruby-0.6.0 release should work (to the best of its limited
|
94
|
+
abilities) on these platforms.
|
95
|
+
|
96
|
+
=== Gem Installation Notes - OS X
|
97
|
+
|
98
|
+
* Gems are provided as single universal binary for both Intel and
|
99
|
+
PowerPC Apple machines
|
100
|
+
|
101
|
+
* wxRuby binary gems are compatible with versions 10.4 (Tiger) and 10.5
|
102
|
+
(Leopard)
|
103
|
+
|
104
|
+
=== Gem Installation Notes - Linux
|
105
|
+
|
106
|
+
* The wxRuby gems for Linux are intended to work with your system's
|
107
|
+
existing packages and libraries. Therefore, you should install the
|
108
|
+
wxwidgets-2.8 package(s) for your system, eg libwx-2.8
|
109
|
+
|
110
|
+
* The gems are built on recent versions of Ubuntu; due to the wide
|
111
|
+
variation between the configuration of different distros, they may not
|
112
|
+
work correctly with other distributions and versions. If you
|
113
|
+
experience errors after installing the gem, you will need to compile
|
114
|
+
your own version of wxRuby.
|
115
|
+
|
116
|
+
* On some systems libselinux1-related shutdown crashs are reported with
|
117
|
+
wxRuby. On Ubuntu Hardy, this workaround fixed it:
|
118
|
+
http://www.libavg.de/wiki/index.php/Libavg_on_Ubuntu#8.04_known_issue
|
119
|
+
|
120
|
+
= Compiling wxRuby from Source
|
121
|
+
|
122
|
+
The remainder of this document covers compiling ruby from source.
|
123
|
+
|
124
|
+
Compiling wxRuby is recommended if you wish to use the latest
|
125
|
+
development version, or if you want to work with a specific
|
126
|
+
configuration of wxWidgets - for example, that provided by a Linux
|
127
|
+
distro. You may also need to compile wxRuby if a binary gem is not
|
128
|
+
available for your platform.
|
129
|
+
|
130
|
+
== Compilation prerequisites
|
131
|
+
|
132
|
+
* A C++ compiler: MSVC or MingW for Windows; gcc (g++) for Linux and OS X
|
133
|
+
* A recent version of SWIG, especially for Ruby 1.9.
|
134
|
+
* rake
|
135
|
+
* A compiled wxWidgets library, either built yourself or installed from
|
136
|
+
via a package manager
|
137
|
+
|
138
|
+
wxWidgets has a huge range of compile-time options, and wxRuby tries to
|
139
|
+
support as many of these as possible. In particular, both debug and
|
140
|
+
release builds are supported; a debug build is recommended if you're
|
141
|
+
interested in working on wxRuby. On windows, only static builds are
|
142
|
+
supported; on Linux and OS X, either statically or dynamically linked
|
143
|
+
libraries can be used.
|
144
|
+
|
145
|
+
wxRuby will skip several optional features if they are not supported by
|
146
|
+
your wxWidgets library; these include StyledTextCtrl, GraphicsContext
|
147
|
+
and OpenGL classes.
|
148
|
+
|
149
|
+
== Obtaining wxRuby source code
|
150
|
+
|
151
|
+
Tarballs containing the wxRuby source for released versions can be
|
152
|
+
downloaded from the wxRuby Rubyforge pages:
|
153
|
+
http://rubyforge.org/frs/?group_id=35
|
154
|
+
|
155
|
+
If you wish to use the latest development code, it's hosted in
|
156
|
+
Subversion at rubyforge.org. Note that this code may be incomplete or
|
157
|
+
buggy. To check it out do
|
158
|
+
|
159
|
+
svn co svn://rubyforge.org/var/svn/wxruby/trunk/wxruby2
|
160
|
+
|
161
|
+
== Setting build options
|
162
|
+
|
163
|
+
If you're compiling on Windows, you *must* set an environment variable
|
164
|
+
to indicate where the WxWidgets libraries and header files can be found:
|
165
|
+
|
166
|
+
set WXWIN=C:/path/to/wxMSW-2.8.9
|
167
|
+
|
168
|
+
The path should be the top-level directory of the unpacked wxWidgets
|
169
|
+
tarball; it's recommended that the path does not contain spaces.
|
170
|
+
|
171
|
+
If you have multiple parallel versions of wxWidgets installed, you may
|
172
|
+
influence which build is selected by setting or unsetting the
|
173
|
+
environment variables WXRUBY_DEBUG, WXRUBY_RELEASE, WXRUBY_STATIC and
|
174
|
+
WXRUBY_DYNAMIC. eg
|
175
|
+
|
176
|
+
export WXRUBY_DEBUG=1
|
177
|
+
|
178
|
+
Forces wxRuby to be built against a -debug version of wxWidgets.
|
179
|
+
|
180
|
+
Lastly, you may specifically exclude certain classes; this is most often
|
181
|
+
useful if a particular class is causing problems:
|
182
|
+
|
183
|
+
export WXRUBY_EXCLUDE=ThisClass,ThatClass
|
184
|
+
|
185
|
+
== Running the compile task
|
186
|
+
|
187
|
+
From the top-level directory of the unpacked or downloaded wxRuby
|
188
|
+
directory, just start the rake build with the command:
|
189
|
+
|
190
|
+
rake
|
191
|
+
|
192
|
+
There is no ./configure step, nor do you need to run ruby
|
193
|
+
extconf.rb. wxRuby has approaching 300 classes to generate, compile and
|
194
|
+
link, so the process may take some time.
|
195
|
+
|
196
|
+
== Using a compiled library
|
197
|
+
|
198
|
+
To run a wxRuby program using the newly compiled library, you can run
|
199
|
+
ruby with the -I flag pointing to the lib directory. For example, a
|
200
|
+
quick test of a newly compiled library might be:
|
201
|
+
|
202
|
+
ruby -Ilib samples/minimal/minimal.rb
|
203
|
+
|
204
|
+
== Installing a compiled library
|
205
|
+
|
206
|
+
Rubygems has emerged as the standard for managing user ruby libraries,
|
207
|
+
so you may wish to create a gem from your compiled code and install
|
208
|
+
it. To create a gem, do:
|
209
|
+
|
210
|
+
rake gem
|
211
|
+
|
212
|
+
This will create a gem file, which you can install as above.
|
213
|
+
|
214
|
+
If you do not wish to use Rubygems, you can also do
|
215
|
+
|
216
|
+
rake install
|
217
|
+
|
218
|
+
This will install wxRuby into your site_ruby directories. As with gem
|
219
|
+
commands, you may need to be root do this. Note that as Rubygems has
|
220
|
+
become the standard installation method for Ruby libraries, the
|
221
|
+
'install' task is no longer regularly maintained and tested.
|
222
|
+
|
223
|
+
= Porting to other platforms
|
224
|
+
|
225
|
+
The instructions above cover all the platforms that are in current use
|
226
|
+
for wxRuby. It should however be possible to use wxRuby on any platform
|
227
|
+
supported by wxWidgets and Ruby:
|
228
|
+
|
229
|
+
http://wiki.wxwidgets.org/Supported_Platforms
|
230
|
+
|
231
|
+
Platform-dependent rakefiles are used to set up compiler-specific
|
232
|
+
settings. The following platforms are currently fully supported:
|
233
|
+
|
234
|
+
Mac OSX (gcc): rakemacosx.rb
|
235
|
+
Linux (GTK2 + gcc): rakelinux.rb
|
236
|
+
Windows (shared): rakewindows.rb
|
237
|
+
Windows (MSVC): rakemswin.rb
|
238
|
+
Windows (MingW): rakemingw.rb
|
239
|
+
|
240
|
+
For other platforms, you will need to create or edit the appropriate
|
241
|
+
platform-dependent rake file if your system is not yet supported, or if
|
242
|
+
it is unusual. These files are found in the rake subdirectory, for
|
243
|
+
example:
|
244
|
+
|
245
|
+
NetBSD: rakenetbsd.rb
|
246
|
+
|
247
|
+
The existing rake files should provide a starting point. When editing a
|
248
|
+
platform-dependent rakefile, you might merely need to set one or more of
|
249
|
+
the following variables:
|
250
|
+
|
251
|
+
$extra_cppflags
|
252
|
+
$extra_ldflags
|
253
|
+
$extra_objs
|
254
|
+
$extra_libs
|
data/README
CHANGED
@@ -1,297 +1,198 @@
|
|
1
|
-
README for
|
1
|
+
= README for wxRuby version 2.0
|
2
2
|
|
3
|
-
|
3
|
+
== Introduction
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
wxRuby is a cross-platform GUI library for Ruby, based on the wxWidgets
|
6
|
+
GUI toolkit for C++. It uses native widgets wherever possible, providing
|
7
|
+
the correct look, feel and behaviour to GUI applications on Windows, OS
|
8
|
+
X and Linux/GTK. wxRuby aims to provide a comprehensive solution to
|
9
|
+
developing professional-standard desktop applications in Ruby.
|
9
10
|
|
10
|
-
|
11
|
-
wxruby version 2.0.
|
11
|
+
== Installing wxRuby
|
12
12
|
|
13
|
-
|
13
|
+
wxRuby is distributed as pre-compiled binaries and source from the
|
14
|
+
project's site on Rubyforge: http://wxruby.rubyforge.org/
|
14
15
|
|
15
|
-
|
16
|
+
For the majority of users, installation simply requires running 'gem
|
17
|
+
install wxruby' on the command line. See INSTALL for further
|
18
|
+
information.
|
16
19
|
|
17
|
-
|
20
|
+
== wxRuby licence
|
18
21
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
+
wxRuby is free and open-source. It is distributed under a liberal
|
23
|
+
licence which is compatible with both free and commercial development.
|
24
|
+
See LICENSE for more details.
|
22
25
|
|
23
|
-
|
24
|
-
will be added to wxRuby2 in the near future, as these operating
|
25
|
-
systems have very limited support for Unicode.
|
26
|
+
== FAQ
|
26
27
|
|
27
|
-
|
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)?
|
28
|
+
=== What platforms and operating systems are supported in wxRuby2?
|
57
29
|
|
58
|
-
|
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?
|
30
|
+
Currently the following are fully supported:
|
64
31
|
|
65
|
-
|
66
|
-
|
67
|
-
|
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?
|
32
|
+
* Windows NT/2000/XP/Vista (i686, MSVC and MingW)
|
33
|
+
* OS X 10.4+ (i686 and PowerPc)
|
34
|
+
* Linux (i686 + AMD-64)
|
88
35
|
|
89
|
-
|
90
|
-
|
36
|
+
Support for other platforms is not being actively developed at present,
|
37
|
+
but patches are welcome. It is likely to be much simpler to get wxRuby
|
38
|
+
working on similar modern systems (eg FreeBSD or Solaris with GTK) than
|
39
|
+
on legacy systems (eg Windows 98, Mac OS 9).
|
40
|
+
|
41
|
+
=== Why would I choose wxruby over FXRuby, Ruby/GTK, Shoes etc?
|
91
42
|
|
92
|
-
|
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.
|
43
|
+
There are several fine GUI toolkits available for Ruby, but we consider
|
44
|
+
that wxRuby offers a combination of features that no other toolkit can match:
|
100
45
|
|
101
|
-
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
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
|
46
|
+
* Cross-platform (MS Windows, Mac OS X, Linux)
|
47
|
+
* Real native widgets wherever possible
|
48
|
+
* Provides a comprehensive selection of widgets and other GUI features
|
49
|
+
* Useful non-GUI support classes, eg for Images and internationalisation
|
50
|
+
* Simple licence that is compatible with proprietary and Free Software
|
51
|
+
* Mature and actively developed foundation in wxWidgets
|
52
|
+
* Easy to install and redistribute
|
53
|
+
|
54
|
+
=== Why are native widgets important or helpful?
|
55
|
+
|
56
|
+
The really important feature among the above is, for many people, native
|
57
|
+
widgets. Several toolkits are to some degree able to simulate the native
|
58
|
+
appearance of widgets, but wxRuby widgets are actually native widgets -
|
59
|
+
so they behave and interact exactly according to the desktop's GUI
|
60
|
+
conventions.
|
61
|
+
|
62
|
+
For one thing, this means that end-users do not have to adjust to a
|
63
|
+
"foreign" interface. It ensures maximum compatibility with "assistive
|
64
|
+
technology" such as screen readers for blind users. It also allows apps
|
65
|
+
to respect any themes the user may have chosen through their operating
|
66
|
+
system.
|
67
|
+
|
68
|
+
Desktop conventions go beyond widget appearance, to the labelling and
|
69
|
+
positioning of items in standard dialogs and menus. wxRuby offers
|
70
|
+
features to help with these too.
|
71
|
+
|
72
|
+
== Where can I ask a question, or report a bug?
|
73
|
+
|
74
|
+
The main mailing list for those using wxRuby for GUI development is
|
75
|
+
wxruby-users. General questions and queries of all sorts are appropriate
|
76
|
+
for this list, and new users are welcome.
|
77
|
+
|
78
|
+
When asking a question, if something is not working as you expect,
|
79
|
+
please provide a *minimal*, *runnable* sample of code that demonstrates
|
80
|
+
the problem, and say what you expected to happen, and what actually
|
81
|
+
happened. Please also provide basic details of your platform, ruby and
|
82
|
+
wxruby version, and make a reasonable effort to find answers in the
|
83
|
+
archive and documentation before posting. People on the list are happy
|
84
|
+
to help, but it's too much to expect them to guess what you're trying to
|
85
|
+
do, or try and debug 1,000 lines of your application.
|
86
|
+
|
87
|
+
There is a bug-tracker and feature-request system on the rubyforge
|
88
|
+
project pages for wxRuby. Using these helps ensure that a bug is
|
89
|
+
followed through and resolved. You're strongly encouraged to post to
|
90
|
+
these logged-in to rubyforge and not anonymously. You won't receive any
|
91
|
+
requests for follow-up information on anonymous items, and so these can
|
92
|
+
end up being closed without being resolved if needed information isn't
|
93
|
+
supplied.
|
94
|
+
|
95
|
+
wxruby-development is a secondary mailing list for all those interested
|
96
|
+
in the current and future development of wxRuby. The discussion on this
|
97
|
+
list tends to deal more with the internals of the library.
|
98
|
+
|
99
|
+
== How can I learn to use wxRuby?
|
100
|
+
|
101
|
+
wxRuby is a large API and takes some time to learn. The wxRuby
|
102
|
+
distribution comes with numerous samples which illustrate how to use
|
103
|
+
many specific parts of the API. A good one to start with is the
|
104
|
+
'minimal' sample, which provides an application skeleton. All the
|
105
|
+
bundled samples are expected to work with current wxRuby 2.0, although
|
106
|
+
some use a more modern coding style than others.
|
107
|
+
|
108
|
+
Complete wxRuby API documentation can downloaded separately; this tends
|
109
|
+
to focus on how to use specific classes and methods, rather than on how
|
110
|
+
to construct an application overall.
|
111
|
+
|
112
|
+
There are also tutorials on the wiki, as well as on third-party
|
113
|
+
websites. These typically provide in-depth view of a particular topic,
|
114
|
+
but some may be out-of-date.
|
115
|
+
|
116
|
+
One of the advantages of wxRuby is the much larger ecosystem of
|
117
|
+
wxWidgets and wxPython resources out there. There is a book for
|
118
|
+
wxWidgets,"Cross-Platform Programming in wxWidgets", whcih can be freely
|
119
|
+
downloaded as a PDF. This provides very comprehensive coverage of the
|
120
|
+
wxWidgets API in C++. The code may not be directly useful, but the
|
121
|
+
descriptions of how widgets and events and so forth work are almost
|
122
|
+
always relevant to wxRuby.
|
123
|
+
|
124
|
+
When using a search engine to find answers about a wxRuby class, it can
|
125
|
+
be worth searching for the same term but with 'wx' prepended. For
|
126
|
+
example, if you wanted answers about the "Grid" class, try searching for
|
127
|
+
"wxGrid" as this will turn up results relating to wxWidgets and wxPython
|
128
|
+
which may be relevant.
|
129
|
+
|
130
|
+
== What wxWidgets features are supported by wxRuby?
|
131
|
+
|
132
|
+
wxRuby supports almost all of the wxWidgets 2.8.9 GUI API, around 300
|
133
|
+
classes in total. wxWidgets classes that provide general programming
|
134
|
+
support features, such as strings, networking, threading and database
|
135
|
+
access are not and will never be ported, as it's assumed that in all
|
136
|
+
these cases it's preferable to use a Ruby library.
|
137
|
+
|
138
|
+
If you know of a feature in wxWidgets that you would like to see
|
139
|
+
supported in wxRuby
|
140
|
+
|
141
|
+
== How does wxRuby 2.0 relate to the wxruby 0.6.0 release?
|
142
|
+
|
143
|
+
wxRuby 0.6.0 was the last in a series of releases developed using a
|
144
|
+
different approach in the early days of wxRuby. Work on this series
|
145
|
+
stopped in early 2005, in favour of what is now wxRuby 2.0. Several
|
146
|
+
years of development have gone into wxRuby since, making it vastly more
|
147
|
+
capable and correct than the 0.6.0 release, which is only offered for
|
148
|
+
legacy applications.
|
149
|
+
|
150
|
+
== I am getting an error trying to install or compile wxRuby
|
151
|
+
|
152
|
+
Please double-check the INSTALL documents, and search the mailing list
|
153
|
+
archives. If this doesn't help, please post your question on the wxruby
|
154
|
+
mailing list (http://wxruby.rubyforge.org/wiki/wiki.pl?MailingLists)
|
155
|
+
|
156
|
+
= Credits
|
157
|
+
|
158
|
+
Kevin Smith established the wxRuby 2.0 project using SWIG in 2005. Since
|
159
|
+
then it has benefitted from the input of dozens of volunteers, who have
|
160
|
+
contributed code, documentation, testing, bug reports and feature
|
161
|
+
requests.
|
162
|
+
|
163
|
+
The alphabetic list shows (some of) those who've contributed code to
|
164
|
+
wxRuby 2.0.
|
165
|
+
|
166
|
+
Albin Holmgren
|
167
|
+
Alex Fenton
|
168
|
+
Artur Kuptel
|
169
|
+
Cezar Espinola
|
170
|
+
Chauk-Mean Proum
|
171
|
+
Christophe Bludau
|
172
|
+
Curt Hibbs
|
173
|
+
Dale Edmons
|
174
|
+
Daniel Savarese
|
175
|
+
David Whetstone
|
176
|
+
Dirk Traulsen
|
177
|
+
Hawley Waldman
|
178
|
+
Jani Monoses
|
179
|
+
Joe Seeley
|
180
|
+
Jonathan Maasland
|
181
|
+
Kevin Smith
|
182
|
+
Mario Steele
|
183
|
+
Nic
|
184
|
+
Pascal Hurni
|
185
|
+
Robert Carlin
|
186
|
+
Roy Sutton
|
187
|
+
Ryuichi Sakamoto
|
188
|
+
Sean Lindsay
|
189
|
+
Sean Long
|
190
|
+
Tobias Gruetzmacher
|
191
|
+
Zach Dennis
|
192
|
+
|
193
|
+
If your name is missing and should be here, please get in touch
|
194
|
+
with the current development team.
|
195
|
+
|
196
|
+
== Lead Maintainer
|
197
|
+
|
198
|
+
Alex Fenton: alex at pressure dot to
|