]> git.saurik.com Git - wxWidgets.git/blame - docs/gtk/welcome.html
Deleted "#include <sched.h>".
[wxWidgets.git] / docs / gtk / welcome.html
CommitLineData
c801d85f
KB
1<html>
2<head><title>wxGTK Homepage</title>
3</head>
4<body bgcolor=#FFFFFF text=#000000 link=#0020FF vlink=#800000 alink=#007777>
5<h1>"wxWindows for the GTK" Homepage</h1>
6
7<hr>
8<h3>Current version</h3>
915th May '98: wxGTK v0.12 (alpha-)
10<p>
11This release is hardly more stable than the one before, but it
12has many new features. It's main purpose is actually to prepare
13the final merge of the Windows port and the GTK port source
14trees into a common tree, developed using CVS. The growing
15number of demos which compile and run with wxGTK "although"
16being written for wxMSW shows that we seem to be on the right
17track. One nice new feature for many potential users is that
18wxGTK no longer needs any extra libraries to be installed,
19other than the GTK.
20<p>
21If you have a compiler
22better than gcc 2.7.2.2 then you can uncomment a line in src/common/prntbase.cpp
23which defines __GOOD_COMPILER__. This should make the printing demo work.
24I haven't got such a compiler, so I actually don't know. Somebody reported
25problems with version 2.7.2.3 as well.
26<p>
27<hr>
28<h3>Acknowledgements</h3>
29I'd like to thank the
30<a href="http://www.freiburg.linux.de">Freiburg Linux User Group</a>
31 for kindly providing
32this site and Christian Wetzel in particular for helping me with
33this site's administration.
34<p>
35
36<hr>
37<h3>What is wxWindows?</h3>
38wxWindows is a C++ cross-platform GUI toolkit written mainly by Julian Smart.
39More information about wxWindows can be found at the
40<a href="http://web.ukonline.co.uk/julian.smart/wxwin">wxWindows Homepage</a>.
41
42<p>
43The current version of wxWindows (v1.68) supports Windows ('95 and NT), Motif and
44XView (aka OpenLook). There is another port (wxXt) available, which uses the
45free-ware widget set from the Free Widget Foundation (FSF). Ports have been
46started for the Mac, OS/2 and NextStep.
47<p>
48For different reasons, it was decided to start a complete rewrite of wxWindows,
49which will then be called wxWindows 2.0. For a list of new features and changes
50from the current version, you may read the wxWindows Homepage (see above).
51<p>
52Currently, work is being done on four ports of wxWindows 2.0:
53<dl>
54 <li> Windows (wxMSW, main author Julian Smart)
55 <li> Unix, Motif (wxMotif, main author Markus Holzhem)
56 <li> Unix, GIMP Toolkit (wxGTK, main author Robert Roebling)
57 <li> Macintosh (wxMac, main author Greg Whitehead)
58</dl>
59<p>
60wxWindows provides a rich set of classes which help to make cross-platform
61GUI programming easy. In many aspect, it is modelled after MFC, making transition
62from MFC to wxWindows relatively painless. The main technical
63difference between most other free or commercial cross platform libraries is
64that wxWindows is a wrapper around existing widget sets, whereas the other
65toolkits (Qt, Tk, Java, Amulet, OPaC, JX, Fresko) draw their widgets themselves,
66which results in applications having a different look than native applications
67for that specific platform.
68<p>
69There are classes for the following categories
70<dl>
71 <li> Window classes: wxWindow, wxFrame, wxDialogBox, wxPanel, wxCanvas etc.
72 <li> Widget classes: wxButton, wxCheckbox, wxChoice, wxListBox, wxListCtrl, wxText, wxGauge etc.
73 <li> Data structures: wxList, wxString, wxHashTable, wxDate etc.
74 <li> Layout/constraint system
75 <li> GDI classes: wxPen, wxBrush, wxFont, wxBitmap etc.
76 <li> Events: wxCommandEvent, wxMouseEvent, wxKeyEvent etc.
77 <li> Devices contexts: wxCanvasDC, wxPostScriptDC, wxMemoryDC, wxPrinterDC
78 <li> Base classes for runtime-type information: wxObject
79 <li> Interprocess communication: wxClient, wxConnection, wxSocket, wxServer etc.
80 <li> Document-view architecture: wxDocument, wxView, wxDocManager etc.
81 <li> Printing framework: wxPreviewFrame, wxPrintDialog, wxPrinter etc.
82 <li> Many helper classes, wxApplication, wxTypeTree, wxPathList etc.
83 <li> Classes for internationalization
84 <li> Built-in memory leak checking, log-files
85 <li> A multitude of functions and macros
86</dl>
87
88<hr>
89<h3>Copyright</h3>
90The choice of a suitable copyright has been subject to endless discussions. It
91has always been the aim, to put wxWindows under a copyright, which protects
92the work of its authors while at the same time encouraging the use of wxWindows
93in as many projects as possible.
94<p>
95The (so far) last decision has been to put the whole of wxWindows
96under a modified (less restrictive) version of the GNU library general
97public license.
98<p>
99The only exception is that wxGTK now contains code (gdk_imlib) which is
100under the GNU library general public license. When you make changes to
101this part of wxGTK, you'll have to make these changes public (in contrast
102to changes to the rest).
103<p>
104It is obviously encouraged that anybody who uses wxWindows and who
105makes any improvements to it will make these changes available to
106wxWindows' authors.
107<p>
108<hr>
109<h3>What can I do with wxWindows 2.0?</h3>
110wxWindows is still in alpha stage, which means that there are still bugs
111waiting for you and several features are not yet (fully) implemented, but
112you can expect the interface to be more or less stable, so no major
113modifications will have to be made to your source code. wxGTK is already
114used in a number of medium sized projects and is it being developped
115in close cooperation with the authors of these applications.
116<p>
117<hr>
118<h3>Can I write a GNOME application with wxGTK 2.0?</h3>
119Good question. The idea to use wxGTK for the GNOME desktop environment is
120quite obvious. When this topic came up on the GNOME mailing list, the GNOME
121people have shown an amazingly negative opinion about wxWindows. One reason
122might be that several of the main authors of the GNOME-project consider
123C++ a "broken language". I don't share that view and I am sure many people
124find C++ easier to handle and better suited for GUI programming than C.
125<p>
126Just recently, the topic of C++ in general and wxGTK in particular appeared
127again on the GNOME list. It has shown that - at least - the opinion on C++
128on the GNOME list is split.
129<p>
130There is already a C++ wrapper for the GTK called GTK-- written by Tero Pulkkinen.
131It is very small and adds very little overhead to the GTK. If platform
132independence is no issue for you and you want to write a small tool
133for Linux, you should probably use GTK--. Of course you can use wxGTK
134for that, too :-)
135<p>
136<hr>
137<h3>Screenshots</h3>
138What would a home page of a GUI be without a screenshot? Well, as wxWindows
139is a wrapper around existing widget/item sets, a wxWindows application will
140look like any other native Windows, Motif, GTK or Mac application.
141<p>
142But for those of you, who wouldn't download wxGTK only because there
143is no screenshot,
144<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt/sshot.jpg">here it comes</a>.
145<p>
146<hr>
147<h3>Download 1.68</h3>
148Go to the
149<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt">FTP</a>
150section directly.
151<p>
152There is documentation for version 1.68 in html available.
153<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt">here</a>. Not yet.
154<p>
155You can download current wxWindows version 1.68 for Windows, Motif and
156XView from
157<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt">here</a>. Not yet.
158<p>
159You can download wxXt 1.66d from
160<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt/wxxt166d.tgz">here</a>.
161<p>
162<hr>
163<h3>Download 2.0 alpha</h3>
164There is documentation for version 2.0 in html available.
165<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt/wxGTK_doc.tgz">here</a>.
166<p>
167You can download the first alpha for wxWindows 2.0 for Windows from
168<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt/">here</a>. Not yet.
169<p>
170You can download the current alpha for wxWindows 2.0 for GTK from
171<a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt/wxGTK-0.12.tgz">here</a>.
172<p>
173
174<hr>
175<h3>News from wxGTK 0.12</h3>
176<p>
177PNG, zlib and gdk_imlib code included.
178<p>
179MDI implementation. More a basis for further testing
180than of real value.
181<p>
182Split "--with-debug" option into two options: "--with-debug_info"
183and "--with-debug_flag". The first one sets the "-g" flag when
184compiling, the second defines "DEBUG" in setup.h (which is included
185from defs.h).
186<p>
187Merged DocView framework. The sample doesn't compile yet, because
188it uses features from wxTextCtrl, which I haven't implemented yet.
189<p>
190Merged TabCtrl. Doesn't look perfect, but it seems to work.
191<p>
192Merged remaining classes from the newest wxMSW alpha. (wxDynArray,
193wxModule etc.).
194<p>
195Further updates, bug fixes or additions:
196<p>
197<dl>
198 <li> wxYield() (again)
199 <li> postscript support for bitmaps
200 <li> spline code merged
201 <li> several bug fixes
202 <li> new samples
203</dl>
204
205<p>
206<hr>
207<h3>Known problems</h3>
208
209Missing implementation of:
210<dl>
211 <li>Impossible to set new font in GTK's widgets
212 <li>Items containing bitmaps
213 <li>Masks, bitmap handlers (partially done)
214 <li>Gauge
215 <li>Combobox
216 <li>Palettes (colormaps)
217 <li>Keyboard accelerators for menus
218 <li>Validation
219 <li>Clipboard functions
220 <li>Resources (for use with wxIDE-to-be)
221 <li>Drag and Drop
222 <li>Threads, Interprocess communication
223 <li>Sockets
224 <li>Database classes
225</dl>
226
227<p>
228<hr>
229<h3>Installation of wxGTK under Linux</h3>
230
231GTK requires an up-to-date version of the
232<dl>
233 <li> GTK (GIMP ToolKit)
234</dl>
235to be installed as a shared lib on your system. wxGTK is being developped with
236version 1.0.1 and it is known not to work with earlier versions.
237The GTK library is available from
238<a href="ftp://ftp.gtk.org/pub/">somewhere here (gtk.org).</a>
239After having typed "make install" the GTK header files should be
240in "/usr/local/include". Correct me, if I am wrong.
241<p>
242Compilation itself works as usual with autoconf:
243<dl>
244 <li> Unpack it to a suitable subdirectory, let's say ~/wxGTK
245 <li> Type "cd wxGTK"
246 <li> Type "configure"
247 <li> Type "make"
248</dl>
249Some demos use files stored in the source directory of those demos
250(e.g. internat uses files in samples/internat) whereas the binaries
251will end up in samples/internat/linux. You'll have to copy the binaries
252down or call them like "linux/test" from samples/internat. This is
253also the case for wxTest (which should display a horse).
254<p>
255You can create a shared library by adding the option "--with-shared" to
256the "configure" command. Afterwards, you'll have to copy the library
257~/wxGTK/lib/linux (if you have Linux) to a directory in your LDPATH (e.g. /usr/X11R6/lib)
258and run "ldconfig".
259<p>
260
261<hr>
262<h3>Mailing list for wxGTK</h3>
263The mailing list (as well as this page) is called wxxt for more
264or less historical reasons.
265<p>
266You can subsribe to the mailing list by sending a mail to
267<a href="mailto:majordomo@wesley.informatik.uni-freiburg.de">majordomo@wesley.informatik.uni-freiburg.de</a>.
268This mail must contain the text "subscribe wxxt" in the body (not the subject) of the
269mail. You will then get a confirmation that somebody asked majordomo to put you
270on the list and you will have to confirm this once again by sending back
271the authentisation, which comes in the confirmation mail. The last step
272is also described in the actual confirmation mail (I think).
273<p>
274You can send a mail to the mailing list to the address
275<a href="mailto:wxxt@www.freiburg.linux.de">wxxt@www.freiburg.linux.de</a>.
276
277<p>
278Unsubscribe by sending "unsubscribe wxxt" to majordomo (see above). Not to
279the actual mailing list.
280<p>
281<hr>
282<address>
283<br>This page is maintained by <a href="mailto:roebling@sun2.ruf.uni-freiburg.de">Robert Roebling</a>.
284Comments, in contrast to junk and flames, welcome.
285<p>
286Last changed 15th Mai '98.
287</address>
288</body>
289</html>
290
291
292