]> git.saurik.com Git - wxWidgets.git/blob - docs/gtk/welcome.html
Initial revision
[wxWidgets.git] / docs / gtk / welcome.html
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>
9 15th May '98: wxGTK v0.12 (alpha-)
10 <p>
11 This release is hardly more stable than the one before, but it
12 has many new features. It's main purpose is actually to prepare
13 the final merge of the Windows port and the GTK port source
14 trees into a common tree, developed using CVS. The growing
15 number of demos which compile and run with wxGTK "although"
16 being written for wxMSW shows that we seem to be on the right
17 track. One nice new feature for many potential users is that
18 wxGTK no longer needs any extra libraries to be installed,
19 other than the GTK.
20 <p>
21 If you have a compiler
22 better than gcc 2.7.2.2 then you can uncomment a line in src/common/prntbase.cpp
23 which defines __GOOD_COMPILER__. This should make the printing demo work.
24 I haven't got such a compiler, so I actually don't know. Somebody reported
25 problems with version 2.7.2.3 as well.
26 <p>
27 <hr>
28 <h3>Acknowledgements</h3>
29 I'd like to thank the
30 <a href="http://www.freiburg.linux.de">Freiburg Linux User Group</a>
31 for kindly providing
32 this site and Christian Wetzel in particular for helping me with
33 this site's administration.
34 <p>
35
36 <hr>
37 <h3>What is wxWindows?</h3>
38 wxWindows is a C++ cross-platform GUI toolkit written mainly by Julian Smart.
39 More 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>
43 The current version of wxWindows (v1.68) supports Windows ('95 and NT), Motif and
44 XView (aka OpenLook). There is another port (wxXt) available, which uses the
45 free-ware widget set from the Free Widget Foundation (FSF). Ports have been
46 started for the Mac, OS/2 and NextStep.
47 <p>
48 For different reasons, it was decided to start a complete rewrite of wxWindows,
49 which will then be called wxWindows 2.0. For a list of new features and changes
50 from the current version, you may read the wxWindows Homepage (see above).
51 <p>
52 Currently, 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>
60 wxWindows provides a rich set of classes which help to make cross-platform
61 GUI programming easy. In many aspect, it is modelled after MFC, making transition
62 from MFC to wxWindows relatively painless. The main technical
63 difference between most other free or commercial cross platform libraries is
64 that wxWindows is a wrapper around existing widget sets, whereas the other
65 toolkits (Qt, Tk, Java, Amulet, OPaC, JX, Fresko) draw their widgets themselves,
66 which results in applications having a different look than native applications
67 for that specific platform.
68 <p>
69 There 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>
90 The choice of a suitable copyright has been subject to endless discussions. It
91 has always been the aim, to put wxWindows under a copyright, which protects
92 the work of its authors while at the same time encouraging the use of wxWindows
93 in as many projects as possible.
94 <p>
95 The (so far) last decision has been to put the whole of wxWindows
96 under a modified (less restrictive) version of the GNU library general
97 public license.
98 <p>
99 The only exception is that wxGTK now contains code (gdk_imlib) which is
100 under the GNU library general public license. When you make changes to
101 this part of wxGTK, you'll have to make these changes public (in contrast
102 to changes to the rest).
103 <p>
104 It is obviously encouraged that anybody who uses wxWindows and who
105 makes any improvements to it will make these changes available to
106 wxWindows' authors.
107 <p>
108 <hr>
109 <h3>What can I do with wxWindows 2.0?</h3>
110 wxWindows is still in alpha stage, which means that there are still bugs
111 waiting for you and several features are not yet (fully) implemented, but
112 you can expect the interface to be more or less stable, so no major
113 modifications will have to be made to your source code. wxGTK is already
114 used in a number of medium sized projects and is it being developped
115 in 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>
119 Good question. The idea to use wxGTK for the GNOME desktop environment is
120 quite obvious. When this topic came up on the GNOME mailing list, the GNOME
121 people have shown an amazingly negative opinion about wxWindows. One reason
122 might be that several of the main authors of the GNOME-project consider
123 C++ a "broken language". I don't share that view and I am sure many people
124 find C++ easier to handle and better suited for GUI programming than C.
125 <p>
126 Just recently, the topic of C++ in general and wxGTK in particular appeared
127 again on the GNOME list. It has shown that - at least - the opinion on C++
128 on the GNOME list is split.
129 <p>
130 There is already a C++ wrapper for the GTK called GTK-- written by Tero Pulkkinen.
131 It is very small and adds very little overhead to the GTK. If platform
132 independence is no issue for you and you want to write a small tool
133 for Linux, you should probably use GTK--. Of course you can use wxGTK
134 for that, too :-)
135 <p>
136 <hr>
137 <h3>Screenshots</h3>
138 What would a home page of a GUI be without a screenshot? Well, as wxWindows
139 is a wrapper around existing widget/item sets, a wxWindows application will
140 look like any other native Windows, Motif, GTK or Mac application.
141 <p>
142 But for those of you, who wouldn't download wxGTK only because there
143 is 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>
148 Go to the
149 <a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt">FTP</a>
150 section directly.
151 <p>
152 There 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>
155 You can download current wxWindows version 1.68 for Windows, Motif and
156 XView from
157 <a href="ftp://ftp.freiburg.linux.de/pub/linux/wxxt">here</a>. Not yet.
158 <p>
159 You 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>
164 There 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>
167 You 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>
170 You 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>
177 PNG, zlib and gdk_imlib code included.
178 <p>
179 MDI implementation. More a basis for further testing
180 than of real value.
181 <p>
182 Split "--with-debug" option into two options: "--with-debug_info"
183 and "--with-debug_flag". The first one sets the "-g" flag when
184 compiling, the second defines "DEBUG" in setup.h (which is included
185 from defs.h).
186 <p>
187 Merged DocView framework. The sample doesn't compile yet, because
188 it uses features from wxTextCtrl, which I haven't implemented yet.
189 <p>
190 Merged TabCtrl. Doesn't look perfect, but it seems to work.
191 <p>
192 Merged remaining classes from the newest wxMSW alpha. (wxDynArray,
193 wxModule etc.).
194 <p>
195 Further 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
209 Missing 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
231 GTK requires an up-to-date version of the
232 <dl>
233 <li> GTK (GIMP ToolKit)
234 </dl>
235 to be installed as a shared lib on your system. wxGTK is being developped with
236 version 1.0.1 and it is known not to work with earlier versions.
237 The GTK library is available from
238 <a href="ftp://ftp.gtk.org/pub/">somewhere here (gtk.org).</a>
239 After having typed "make install" the GTK header files should be
240 in "/usr/local/include". Correct me, if I am wrong.
241 <p>
242 Compilation 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>
249 Some demos use files stored in the source directory of those demos
250 (e.g. internat uses files in samples/internat) whereas the binaries
251 will end up in samples/internat/linux. You'll have to copy the binaries
252 down or call them like "linux/test" from samples/internat. This is
253 also the case for wxTest (which should display a horse).
254 <p>
255 You can create a shared library by adding the option "--with-shared" to
256 the "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)
258 and run "ldconfig".
259 <p>
260
261 <hr>
262 <h3>Mailing list for wxGTK</h3>
263 The mailing list (as well as this page) is called wxxt for more
264 or less historical reasons.
265 <p>
266 You 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>.
268 This mail must contain the text "subscribe wxxt" in the body (not the subject) of the
269 mail. You will then get a confirmation that somebody asked majordomo to put you
270 on the list and you will have to confirm this once again by sending back
271 the authentisation, which comes in the confirmation mail. The last step
272 is also described in the actual confirmation mail (I think).
273 <p>
274 You 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>
278 Unsubscribe by sending "unsubscribe wxxt" to majordomo (see above). Not to
279 the 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>.
284 Comments, in contrast to junk and flames, welcome.
285 <p>
286 Last changed 15th Mai '98.
287 </address>
288 </body>
289 </html>
290
291
292