*** wxWidgets 2.3.3 *** Look at the General changes file for more encompassing on the changes that have taken place in 2.3.3. This file has not been kept uptodate. RR. Beta support for GTK 2.0. Use "configure --enable-gtk2 --enable-unicode". Lots of work locale/encoding conversion classes. Large changes in wxThread/wxCondition code. wxLocale detects the system language on all ports. Corrected wxFrame::ShowFullScreen(). Added wxArtProvider for changing default icons and more. Corrected wxScrolledWindow in some rare cases. Added wxIconBundle for mini- and normal icons. Made wxWindow::SetFocus() work before a wxDialog is created. Until now always the first item was focussed. Corrected wxComboBox's semantics of pressing . Corrected SeekI() return values and other related functions in wxFilterStream and wxBufferedStream. Implemented new ref-counting for GDI classes. New implementation of wxCondition. Implemented actual comparisons between GDI classes instead of comparing just the ref-count. Fixed wxMiniFrame again. Added wxCursor creation from wxImage. Added inlined wxHashMap class. Redone thread wake-up code for immediate wake-up instead of 50 ms pause. This gives apps 100% CPU time for background tasks. New behaviour for wxWindow::Refresh() as it now produces a delayed refresh. Call the new wxWindow::Update() to force an immediate update. Support for more SGI hardware (12-bit mode among others) and corrections to wxImage code for special SGI visuals. Changed wxDC::Blit() to honour source DC's logical coordinates. Implemented wxIdleEvent::RequestMore() for simple background tasks (unlike thread work). Various updates to wxHTML. Some wxFont changes for better mixing of native fonts and wxFont's accessors. Added IFF image handler. Added ICO, CUR and ANI image handler. Added image handler for several image per file (GIF, TIFF). wxFrame::SetMenuBar() corrected (for NULL etc.) wxButton honours wxBU_EXACTFIT. wxStaticBox honours wxALIGN_XXX styles Reworked wxConfig class interface. Reworked wxDynamicLibary class for loading classes (particularly wxWidgets classes) from dynamic libraries. Removed wxObjectStream class. Further improvements to wxFileName class. *** wxWidgets 2.3.2 *** Addition of wxFileName class to handler DOS, Unix, Mac and VMS filenames and paths in a platform independent way. Addition of a wxPopupWindow class to imitate temporary windows such as those used combo boxes or in tool tips. Addition of wxToggleButton which was missing in wxWidgets 2.2. Support for virtual lists in wxListCtrl. Addition wxSingleInstanceChecker which does just that. Addition of wxRegEx for regular expression parsing either using the built-in Unix function or a freeware add-on library. wxScrolledWindow completely reimplemented as a native GTK widget. Reimplemented event cloning used for inter-thread communication. Big improvements to the HTML display engine. Handles many more tags correctly now. Partial rewrite and enhancements to the XML based resource system wxXRC. It is now based on the Expat parser. Wider image type support including read/write support for XPM and reading support for ICO files. BMP can be saved in various bit depths now. Fixed some incompatibilities with GTK 1.2.10. Partially reworked build system for installation of multiple builds and cross compilations. Improved wxSizer-based layout system for better support for dynamic layout. *** wxWidgets 2.3.0 *** scaling for map modes other than wxMM_TEXT works correctly (Derry Bryson) *** wxWidgets 2.2.6 *** wxGauge now supports wxGA_VERTICAL (Shane Forsythe) *** 29th January 2001: wxWidgets 2.2.5 released *** Synchronized with wxMSW 2.2.5, include macros for upwards 2.4.0 compatibility. Added missing wxEntry prototype to wx/gtk/app.h. Fixed compilation with --enable-no_rtti/no_exceptions with older egcs. *** 15th January 2001: wxWidgets 2.2.4 released *** Corrected wxYield() to handle recursive calls more gracefully (and with a warning in debug mode). This fixes a problem with crashing wxTreeCtrl's built-in drag'n'drop and probably some other as well. Corrected wxMenuItem::GetLabel() to handle deliberate '_' characters correctly. Patch for better 8-bit-display support. Corrected log error message box. Implemented wxCommandEvent::IsSelection() for wxListBox. Corrected wxListBox::Set() for sorted mode. Added EVT_TEXT_UPDATED for spin ctrl. Corrected wrongly rounded value in slider and scrollbar for negative values. Small fix for wxTextFile type guessing. Translation updates. Various other fixes. Synchronized release with wxMSW again. *** 3rd November: wxWidgets 2.2.3 released *** Fixed bugs in HTTP code. Implemented wxNO_FULL_REPAINT_ON_RESIZE whenever possible and reduced flicker a little (no longer disables GTK's own anti-flicker code). Always have a clipping region equivalent to the update region in OnPaint events (such as under wxMSW and wxMac). Implemented wxListBox::SetFirstItem(). Fixed some minor problems in HTML code, wxListCtrl, wxListBox. Fixed compilation on RedHat 7.0. Updated many translations, added Swedish. Changed default screenpixels-per-inch from 100 to 75 in printing code. Updated AFM font metrics for Ghostscript fonts and let Linux and FreeBSD default to using GS fonts (and not Adobe fonts). *** 20th September: wxWidgets 2.2.2 released *** Fixed wxSizer bug that made items with option flags greater than 1 report a wrong size. Fixed many incompatibilities with GTK themes - essentially a backport from the 2.3 branch. Added missing wxImage::Paste() for transparent images. Fixed a drawing error for ellipses and arc in both the DC code and the PostScript code. Fixed wxListCtrl::HitTest() for report mode. Other minor fixes. *** 20th August 2000: wxWidgets 2.2.1 released *** Minor build fixes. Use the wxCommmandEvent::IsChecked() function for checkable menu items. This mean that the m_int parameter no longer contains the ID of the menu! Fixed major problems in ODBC logging code. This change is binary backward incompatible. Fixed reentry problems in DnD code. Changed PostScript code so that it can handle a higher resolution (720dpi). Minor improvements to wxGrid code. Corrected guffow-scrolling so that no surplus expose events are generated. Corrected bug in wxMask creation on 16-bit displays. Minor correction to wxDC::DrawRoundedRectangle. Added support for and menu accelerators. Made wxComboBox case-sensitive. Minor correction to doc-view architecture. Minor wxCommandLineParser changes. *** 10th July 2000: wxWidgets 2.2.0 released *** Added code for writing BMP images. Added code for writing TIFF images. Fixed problem with best visuals (on SGI) Applied a number of compile fixes for various Unix variants. Fixed wrong background colours appearing sometimes and fix for resetting the default font in controls. Speed-up to wxListCtrl. Fixed bug wxTextStream::ReadLine() Various improvements commandline parser. Changed wxColour unequal operator to compare colours. Fixed wxMenuBar::Replace bug. Added new position to slider update event. Minor fix to idle handling (now wxGTK events come after all GTK events). Various fixes to the new wxGrid class. Bug-fixes. *** 4th June 2000: wxWidgets pre-2.2 release *** Complete freeze now. Only vital bug-fixes allowed. Various enhancements to wxSizer. Added wxGridSizer and wxFlexGridSizer. Reworked wxURL. MANY bugfixes. *** 22th March 2000: wxWidgets 2.1.15 released *** Build fix. RPMs no longer require GTK's include files. An extra library for the OpenGl class now gets built *** 19th March 2000: wxWidgets 2.1.14 released *** An extra library for the OpenGl class now gets built and installed. There is also an extra RPM for this small class now. Added possibility to compile wxGTK with already installed image libraries (TIFF, JPEG, PNG, ZLIB) if you really know what you are doing. Added support for pipes and a stream class to get data out of them. Added memory file system (so you can save html pages with images in memory). Added wxDragImage class for dragging easily images. The DEB and RPM packages now conform better to various standards. Renamed wx-config to wxgtk-config so that motif can be co-installed on the same machine (with wxmotif-config). Speed up for drawing by reusing once created DCs instead of creating and destroying them all the time. Corrections to clipping region code (among others related to simultaneous bitmap clipping). A few more improvements to tab traversal. A number of changes to socket code. Added code for rotating images. Much work on the new grid class has been done. Very cool now. wxPlotWindow is now useful and works. Added on-off lines useful for displaying trigger signals. Corrected one more bug in the TIFF handler. It is now possible to run wxGTK apps in the best visual instead of only the default on system that support this (typically IRIX). Added default keyboard handling to wxScrolledWindow. Fixed slightly overoptimized window colour and style handling. This will expose a bug in the GtkPixmap theme, or more exactly in ImLib's image cashing so that wxGTK currently doesn't work well with pixmap themes. As a result, wxGTK will disable all widget settings when using this theme. Fixed bug in drawing code that made GTK pick the wrong pen style when using the default. The L-GPL iODBC library must now be enables explicitly so as to not mislead people into reading the license wrong. *** 24th January '2000: wxWidgets 2.1.13 released *** Corrections to TAB handling in notebooks. Added scroll event to indicate when the thumb has been released (as opposed to only changed). Fixed crashes with GTK Pixmap theme. Fixed endianness problems in image code. Minor fixes for sockets related to GUI reentrance. Also improved the IPV address class and added more error checking and related things. Many enhancements to wxHTML, more tags supported, better support for non-western texts etc. Corrected code handling mono-bitmaps and their conversion to wxImage etc. Added experimental ConvertToMonoBitmap() to wxImage class. Fixed a few minor problems in wxListCtrl. The MIME-type code in now reads KDE and GNOME mime-type bindings including icon information. This is used in the file dialog. Small fix for problems with code that didn't changed the size of a window, but its client size and thus sent no wxSizeEvent. Fixed problem with shared contexts in OpenGl canvas. Fixed keyboard handling in wxCheckListBox. Corrected the completely nonfunctional TIFF code. Various minor corrections to wxWizard, wxCalendarCtrl and other complex controls. Revamped code for TCP based connections between programs. Updates to the ODBC classes (George Tasker). Build-fixes for various platforms and compilers. *** 6th January '2000: wxWidgets 2.1.12 released *** Who has a BigEndian computer (e.g. Sparc or PowerPC) that runs a 15 and/or 16 bit colour mode? I need this for testing purposes, i.e. this person could help me by running a small test program and sending me the output. Improved support for GTK's themes, changes in font sizes (and the dialogs' ability to react to that) and related things. Added Calendar control. Added classes for recoding text (e.g. from Windows encoding to ISO encoding and for converting to and from Unicode). Updated the 64-bit long class (a class that substitutes a 64-bit int type on platforms which don't provide a native one). Added wxImage::Replace() (for replacing colours) and wxImage::GetSubImage(). Also corrected conversion from mono bitmaps to wxImage. Added wxBitmap::GetSubBitmap(). Removed some flicker from tree ctrl. Minor optical changes. Added support for multiple font and colour support for items in list ctrls and tree ctrls. Added support for multiple-selection file dialog. Implemented wxMenuBar::Insert() and wxMenu::Insert(). There is also a Remove() method now, but the GTK doesn't really like that. Enhanced wxMimeTypesManager to read GNOME and KDE file ending bindings to MIME types and icons. Corrected wxExecute to longer eat up all memory and crash under certain circumstances (Karsten Ballueder). wxGTK no longer gives warnings if the application shows a dialog before entering the main loop. Added string to long/ulong/float conversion routines and some more string related things. Updated documentation for wxFile, wxFFile and their respective stream classes. Documented some more stream classes. Improved wxHTML and its help system. Options dialog, better printing, history index. Also implemented more (cite, definition lists, etc). Corrected wxRegion::GetBox(). Added wxNotebookSizer for combining notebooks and sizers. Added wxDir class. Useful as a replacement for wxFileGetFirst() and wxFileGetNext(). Fixed Y2000 bug in file dialog (sic.) Added wxStopWatch class. wxBitmap now derives from wxGDIObject. Added inlined classes for 2D geometry calculations. wxSpinCtrl now has its own event, intercepted using EVT_SPINCTRL. The ODBC classes can now be configured at run-time if they are to use forward-only cursors or not. Added wxDateTime class. The existing classes wxTime and wxDate have been reimplemented and corrected using wxDateTime. Rewritten wxThread to have a flag controlling if the thread will delete its C++ class itself ("delete this") or if the main thread must delete the C++ class. Added TIFF reading code, PCX writing code. Minor compile and build fixes for different architectures. Added more flags to wxSizer for proportional sizing and centering and alignment combination and a wxNotebookSizer. Added controls to wxToolBars (e.g. combobox) and DeleteTool. Fixed several problems with buffered streams. Added support for setting the end-of-line mode (Mac,DOS,Unix) in wxTextOutputStream. Added code to send events from one thread to another and added function to wake up idle system (needed for sending inter-thread events). Corrected wrongly set flag in dialogs which broke its tab code. Also corrected navigation on wxRadioBox. Corrected segfaults in wxGLCanvas and stupid race when using several such canvasses. Some minor updates to wxSockets. Fixed timeout problem. Speed-up for new encoding related font code. Minor fixes. Changed wxListBox to send deferred events, i.e. events emitted by the listbox won't get processed before the next idle message. More minor changes and fixes. Began work on a new dialog and resource editor (wxDesigner). *** 7st November '99: wxWidgets 2.1.11 released *** There is still an unresolved problem with bitmap to image conversion on big-endian architectures (such as Solaris), where color values get exchanged. I'd need help on this one as I have no BE computer. Enlightenment has struck the majority of the developers and they have chosen to use the Linux kernel numbering scheme for wxWidgets from now on. This means that the next stable release will be called wxWidgets 2.2.X, development snapshots will be called 2.1.X. A lot of discussion has been wasted on how to maintain a once released stable version. It was almost universally agreed that only a commercial entity will have the motivation ($$$) to do that - so far there is no wxWidgets Inc. Support for GTK 1.0 has been dropped. This version has been tested with GTK 1.2.3 and GTK 1.2.6 - it might not work with some other versions. Rewritten the support for multiple-format Drag'n'Drop and clipboard under both GTK and MSW. There are probably some problems here and there left. wxListBox and wxChoice can now handle only either void client data (which it will not delete on destruction) or client data of the wxClientData type (which it will delete), instead of both at the same time. The same will happen to wxComboBox some time. Also, wxListBox can now sort its items. Many build fixes for various platforms have been applied, try again, poor AIX, HP-UX and *BSD users, but don't reckon with immediate success. Actually, when using GNU compilers, your chances are quite good. My rewrite of the wxWidgets underlying GTK widget has turned scrolling including subwindows from barely functional to pretty and fast. I also added scrolling of foreign windows to wxScrolledWindow. Setting size hints for the window manager might work now. wxSocket and Co. have been improved up to the point of calling it a rewrite. It works on wxMSW now too and seems pretty stable, but testing is still welcome. The ODBC classes contributed by Remstar Inc. have been overhauled (incl the sample) and have been tested with all relevant SQL databases (even DBase). For that reason I have reawakened the iODBC code from wxGTK 2.0 so you can now use wxODBC from wxMSW and wxGTK. Several printing things fixed. More work needs to be done here.. HTML widget and the wxWidgets' help system based upon it have been reorganized and improved for easier use from Python and C++. Also HTML printing has been added. wxSpinCtrl added. Like a wxSpinButton and a wxTextCtrl. Changed the behaviour of the popular new wxFileDialog to not forget the once typed file name when changing the directory. Implemented the wxSIMPLE_BORDER flag (simple black line without shadow affect). Michael is writing a complete rewrite of the antiquated wxGrid. This is still work-in-progress and might not make it into wxWidgets 2.2, we'll see. Help would be welcome to make that happen. Made wxMenu code lose less memory, also added wxMenu::Delete(). Added code to send wxActivateEvent to MDI windows. Vadim added configure things to compile wxWidgets without any GUI library. This is probably work in progress. He'll also add a wxFontEnumerator class and has enhanced wxFont to make use of char-encodings. wxSlider, wxWindow, wxScrollBar now emit the correct events for scrolling (like page up, line up etc) instead of just "thumb-track" as before. Corrected Reparent() code, including the special case for wxToolBar (as the toolbar sits in a different window than normal windows). Corrected key accelerator code for toplevel child windows and added support for more key combinations - pretty much all, actually. Corrected cursor handling in a number of special cases. wxGLCanvas now waits until all expose events have been sent and then emits its own redraw event. Also removed flicker for wxGLCanvas and in some other places. A handler to read PCX file (in most variants) has been added. A number of problems with compressed and socket streams have been solved. Changed behaviour of wxTextStream to make use of delimiters and default to space as the standard C++ stream do. Changes to tab traversal code to better reflect MSW code. Corrected problems with wxGenericValidator and certain controls. Made default button action work in more cases. 28th August '99: Ninth wxGTK 2.1 snapshot released As the old makefile system didn't work, I trashed it and wrote a new one - no more GNU. This, of course, caused a lot of people to start sing their song of complaints - any change is a good opportunity to complain, but the effect of the change is that we now have shared library support on Linux and Solaris (and probably others as well) and that the Linux shared library no longer depends on libstdc++, so that we can finally create an RPM that works on different Linux distributions. Also, the Unix make system is now much simpler and directly mirrors its Windows counterparts, making it easier to understand and maintain. As it is independent of the various GNU tools, the requirements for using CVS versions are also much less (any make, any compiler, no other tools). Split RPMs into two, one for run-time requirements and one for development (mostly headers). Addition of new layout classes that work like Java's, GTK's or Qt`s - basically, you pack item in a box and let it tell you how much space it needs. These class are called wxSizer and I consider them a great addition as they make true cross- platform dialogs a child's play and are very quick to write and easy to read. Do consider using them. Rewritten all dialogs to make use of the new sizers. Also added a new wxFileDialog like Win95 and replaced the generic wxFontDialog with GTK's native font selection dialog - this probably isn't perfect though. A few more fixes to wxListCtrl and wxTreeCtrl, implemented more options and modes like the wxMSW version. New handler for PNM files. Added CanRead() function to image handlers, updates to GIF handler for preparing the new wxAnimation class. We'll also get a PCX and hopefully a TIFF handler so that we support all common general-purpose file formats I know about. PhotoShop and PhotoPaint images are not general purpose. I also tried to correct a wxImage bug in connection with big-endian vs. little-endian problems, but I have no Sparc to actually test this. Inclusion of wxMultiMedia. Can play most sound formats on GTK and MSW and (using xanim on Unix and Win95's MM functions) display a video in a wxWindow. This will probably be moved to the core library. Small updates to socket code. The MSW version is still missing. Implemented wxBitmapDataObject class. Added wxFFileStream using FILE* instead if file descriptor. Useful for creating a "cerr" like class as in normal C++. Also added "endl" for use with wxTextStream and fixed a few minor problems with buffered streams etc. Corrected Tabbing code in wxPanel and made it work with wxNotebook. Small cursor fixes in connection with text control. Added experimental wxWizard class. Work in progress. A few more minor fixes. 6th August '99: Eight wxGTK 2.1 snapshot released The new makefile system is not able to produce shared libraries on Unix with the exception of Linux - libtool is really great. Therefore, the build system defaults to static libraries on anything but Linux for now. Work in wxPen, wxBrush and wxDC to match wxMSW more exactly and to implement missing feature etc. Reimplemented radio buttons. The first of a group of such buttons is now marked by having the wxRB_GROUP style. Complete redesign of all stream classes, including tests for them in the samples. Controls now send the same messages (or more importantly none if changed programmatically) as per wxMSW. New implementation of wxSocket using an intermediate library called GSocket. This will hopefully change in the future. Reworked in-place editing of wxListCtrl and wxTreeCtrl. Fixed bug reporting two refreshes when scrolling. Corrected bug in wxComboBox client data code. Corrected reported but unverified bug in BMP loading code. Added a few more methods to wxStaticBitmap. Integration of wxHTML code in the main library, including wxZIPStream, wxFilesystem, wxHTMLHelpController and others. Added a wrapper for ffile() etc functions. Updates to wxDynamicLibrary. New documentation. New version of wxPython, of course. Fixed an undisclosed number of other bugs... 25th June '99: Seventh wxGTK 2.1 snapshot released Many fixes to the new makefile system. The last version gave immediate crashes on all Unices except Linux when linked dynamically against an application. I reordered the object files in the library as I guess that this was the cause. Added icons to message box. This also slightly killed the layout so this needs to be changed again. wxGTK now chooses the best visual available on the display instead of the default one. Fixed wxProgressDialog again. Some more corrections I forgot. New wxPython (includes new layout system and printing). 15th June '99: Sixth wxGTK 2.1 snapshot released The biggest change is the completely rewritten configure/makefile system using automake. The main argument for switching to automake is that the resulting makefiles should be more portable so that people can use the native make utilities instead of GNU make. The new makefile system also handles dependencies correctly, allows for shared-only compilation, can be invoked from any directory for concurrent builds within one source tree, uses libtool for greater shared-library platform support, has a functional "make uninstall", works with GTK, Motif and WINE, conforms better to GNU standards as far as configure option names are concerned and is easier to maintain. Applied patches to compile wxGTK on OS/2. Configure checks for byte-order and new defines for byte swapping with respect to the byte-order. Added test for this to typetest sample. Also made BMP handler bigendian safe so that it should work on Solaris and such. Small changes to basic drawing stuff: made wxColour actually compare RGB values in the == operator, added new constructor to wxMask, corrected initial background colour for DCs, it is now possible to use a wxWindowDC etc before there is any window (this doesn't make any sense, but it is what wxMSW does.) Added support for the PRIMARY SELECTION to the wxClipboard class. Fixed redraw bug when scrolling window-less widgets out of the visible area (actually a work-around for a GTK bug). Regrouped some samples, created new one for various versions of the wxTextCtrl. Added wxWindow::Reparent() and wxFrame::MakeModal(). Improved handling of column width in wxListCtrl and made this more compatible with the wxMSW version. Also removed a bug from the wxImageList returning an off-by-one id for added images. Fixed keyboard hotkeys and resizing for wxMDIChildFrame menu bars. Added flag to wxSplitterWindow to update its children's sizes "live" instead of moving a XOR'ed bar around - this is a resource-draining option. Also corrected cursors in splitter window. New way to show "disabled" or greyed toolbar items. Rewrote parts of the tree ctrl to allow multiple selections and variable size items (Sylvain). These new function do not exist in the native Win32 tree control. Implemented global cursors and wxBusyCursor etc. Also removed another cursor misbehaviour. Updated many parts of the documentation to reflect changes in wxWidgets 2.1, wxPython and more exact description of cross-platform issues as well as platform differences. Many other fixes, mainly by others... Further compile fixes for different architectures. 25th May '99: Fifth wxGTK 2.1 snapshot released This is mostly a bug-fix release. We are having funny times to make wxGTK work well with different micro versions of GTK 1.2 - which is very close to impossible. All versions give warnings, although their number might vary a lot. I use GTK 1.2.3 and only get warnings in one sample (notebook) and that one is due to a bug in GTK - some people using GTK 1.2.2 reported hundreds of warnings getting spat out for what seems like no reason. This snapshot contains the beginnings of our merging of headers, meaning that in the future all ports will use the same headers and will share a lot more code. We have taken this moment to reorganize some code and hope to have eliminated much bad C++ code, as reported primarily by SGI's compilers (Vadim Zeitlin). Rewritten char and key event propagation routines to reflect documentation and do the same on wxGTK as on wxMSW. If you are interested in ascii chars and cursor key etc, intercept EVT_CHAR, if you are interested in which key actually got pressed, intercept EVT_KEYDOWN (Norbert Irmer). Control that are given -1 as their ID no longer get arbitrary positive IDs assigned but arbitrary negative IDs. This had caused some trouble with ID clashes. wxWindow and wxScrolledWindow no longer use the wxScrollEvent, but the newly invented wxScrollWinEvent so that no mixing up of events sent from wxSliders or wxScrollbars placed in a wxWindow can occur. Added wxProgressDialog for use with long background work such as printing. Added drawing sample and scrolling sample, both of which show some misbehaviours... When drawing with the wxXOR logical mode, wxGTK now uses GdkXOR (instead of GdkInvert) and when drawing in wxINVERT logical mode, wxGTK now uses GdkInvert (as before). When you did some rubberband dragging and you used wxXOR and a black pen, then you should change wxINVERT. Applied more patches for SGI and HP-UX compilation. More updates for wxSockets (Guilhem Lavaux). Seems to be nearly finished. You can now use threads within your GUI again. Well, at least if you know what you are doing and you had a look at the threads sample. wxGLCanvas updated so that it can share display lists over several windows and to not exhibit any flicker. (Norber Irmer). wxNotebook revamped so that its process of creation matches wxMSW's more closely, also avoiding problems with wrong page number. Added InsertPage() and the possibility to prevent switching pages by intercepting the PAGE_CHANGING event. Also, wxNotebooks now get shown even if all pages are empty. Added Activate() to wxMDIChildFrame (Russel). Improved wxSplitterWindow behaviour and visual feed-back when given a minimal size etc (Bruce DeVisser). Minor updates to wxTreeCtrl, wxListBox, printing, wxClipboard, wxString, wxThreads and many others. Also wxMSW got a big face-lift, not to mention the new wxMac release... 11th May '99: Fourth wxGTK 2.1 snapshot released This is mostly a bug-fix release. This affects wxSocket, wxThread, and a few GUI classes. Also more work has been done and window placement and decorations etc. which we hope to have finished now. Applied patches for FreeBSD and SGI compilation (not yet finished). Updated wxPython to beta 9. Made wxGLCanvas work again - strangely it flickers now... wxStaticText is currently broken with GTK 1.2.2 (which I don't yet have and thus could not fix). Also, scrolling subwindows (although much improved including a sample) doesn't work perfectly due to a bug in GTK 1.2.1 (probably 1.2.2 as well). Added wxStaticLine. Note that the next release might bring about changes to keyboard handling and scroll event intercepting from wxScrolledWindow. By and large much of the code has stabilized and won't be much *** different in the final wxWidgets 2.1 release. Please test as *** much as you can. The next release will have a new build system. 3rd May '99: Third wxGTK 2.1 snapshot released Updated INSTALL.txt and SYMBOLS.txt. Support for Unicode is now almost complete. Most samples work in both Unicode and non-Unicode mode. Thanks to Ove Kaaven and Vadim. Internal changes required for wxOLE and addition of a very experimental wxOLE code section using GNOME's Bonobo library (from GNOME's CVS). New version of wxPython that works with the wxGTK 2.1. This now includes a very comprehensive test/demo suite. Thanks to Robin Dunn, Harm v.d. Heijden and others. Beware of the hang-man... More fine tuning of focus handling and GUI widgets. Complete rewrite of wxSocket classes (still experimental). Thanks to Guilhem Lavaux. wxMenuBar supports underlined shortcuts like Windows does, indicated by a leading & character. wxMenus now have hotkeys such as in wxXt and wxMSW. Rewritten MDI subsystem. Corrections and additions to the printing framework including a paper type database (Julian). Several controls now support more style flags for modifying look (and feel) of the controls and windows. New implementation of idle handlers, which now send an idle event only once after the event queue has been emptied (which is what happens in the wxMSW port as well), not regularly. This no longer forces wxGTK applications to sleep (by having to call usleep()) in idle time - giving more CPU slices to the application if desired. wxGLCanvas (the OpenGl for wxWidgets) now accepts keyboard input. The usual number of compile and bug fixes from all involved. 21st April '99: Second wxGTK 2.1 snapshot released Added much code for Unicode support. Still experimental, but looks very cool - thanks to Ove Kaaven and Vadim Zeitlin. If you are very brave, then you can compile wxGTK with "configure --with-unicode". More updates on the dreaded issue of making frames and dialogs impossible to resize etc. Drag and Drop works now under GTK 1.2 - at least basically when dragging and dropping text. The API is not entirely fixed yet but seems quite good now. Support for different actions (copy/move/link/..) still missing. I also removed support for GTK 1.0 Drag and Drop - this is just broken and unusable in GTK 1.0 and I don't want to fix it. I now embed the JPEG library and handlers for JPEG and GIF have been added to the existing PNG and BMP (and XPM for GTK version only). In the future, the RPMs will not contain these libraries but depend on the image libraries to be preinstalled whereas the source *.tgz will ship with everything that is needed for wxGTK so that no downloading of ten image libs will be required - also avoiding problems with ten different kinds of libJPEG-6.0.1.7.IV beta 7. We also updated the PNG code to the newest PNG version. wxImage now makes use of the fast rendering code as provided by GTK 1.2 whenever possible. This should mean a speed-up for graphics heavy apps. Many fixes all over. Also should compile with GTK 1.2.0 as opposed to only with GTK 1.2.1 now. wxPython still doesn't compile, I think. 12th April '99: First wxGTK 2.1 snapshot released This is the first developers' version of wxWidgets 2.1 for GTK. It's main new feature is that it supports GTK 1.2 (as opposed to GTK 1.0) which will make development within the GNOME environment a lot easier. Apart from the move to GTK 1.2 and the changes (some major) that were required as part of that work, enhancement or corrections have been made to many of the non-GUI classes and functions (such as wxClipboard, wxThread, wxSocket, wxConfig) and a few GUI classes (accelerators in menus, listbox always with scrollbar, wxFrame honours Motif Window Manager hints, corrected tab traversal for broken GTK 1.0 widgets). There have been slight changes to the printing dialogs and their setup data (which might break apps using this code in previous versions). Also, a bug concerning printing white has been fixed (actually not tested). Although this is only the first 2.1 snapshot, there is little reason not to use it as many bugs from version 2.0 have been corrected. There are, of course, still a few problem left with GTK 1.2 (some of which relate to bugs in GTK). I think I preserved backward compatibility with GTK 1.0 and if not it should be easy to fix - but mostly I don't care. Drag'N'Drop is currently completely broken. Also, wxPython currently doesn't compile with this release. The OpenGL canvas still seems to work. Major targets for the final release (still a long way): a new configure system, support JPEG and GIF formats, wxHTML, super-duper frame layout stuff, syntax-highlighting editor, possibly Unicode, possibly some GNOME goodies, possibly world domination. *** 5th March '99: wxWidgets 2.0 released *** This is the final version of wxWidgets 2.0 for GTK. The versions for Windows and Motif (and also this version) are available form Julian Smart's site. The Mac version is still under development. *** 19th February '99: wxWidgets 2.0 beta 5 *** This is the fifth beta release and it contains mostly bug fixes and updates for documentation. Applied compile fixes for Solaris (different flavours and compilers). *** 12th February '99: wxWidgets 2.0 beta 4 *** This is the fourth beta release and it contains mostly bug fixes and updates for documentation. Tracked a few more cases, where the behaviour between wxMSW and wxGTK differed. This was the case for closing a dialog or frame as well as for clearing a device context or setting its background colour and some other minor details. Most standard dialogs have been face-lifted a little. Implemented default buttons for GTK. Fixed many bugs. You guessed it. *** 29th January '99: wxWidgets 2.0 beta 3 *** This is the third beta release and it contains mostly bug fixes. There is one field where we haven't been able to fix the API yet, and that it Drag'n'Drop. This is mostly due to the fact that DnD in GTK 1.0 is hardly usable and much different from GTK 1.2 which means that we have to design a common API for Windows, GTK 1.0 and GTK 1.2. Although we are trying to prevent that, it is possible that wxWidgets 2.0 (being based on GTK 1.0) will not have proper DnD support. The major changes are that tool tips have been added, threads have been completely rewritten, the ODBC code has been updated and improved, the socket code works better now. Classes for managing MIME-types under Windows and Unix have been added. There is now a wxGLCanvas class for OpenGl/Mesa for the Windows, GTK and Motif ports. Come see the penguins flying... Documentation has received a big face lift - it now covers nearly all the classes, at least. The usual amount of bug fixes. Countless. A few member functions of wxString have been renamed. For those who are using the ever-so-popular wxImage class (which now available on Motif and Windows as well) in 8-bit mode: wxGTK now creates a color cube upon start-up in 8-bit mode and thus the generation of bitmaps from images has been speeded up 20 times. It is now possible to develop with wxGTK without having the GTK 1.0 header files installed so that having the GTK 1.2 header files installed no longer is any problem. We also provide RPMs for RedHat glibc 2 based systems, compiled with egcs 1.1.1 on SuSE 6.0. Note that the RPM will not work in SuSE 6.0 as SuSE decided to ship 6.0 with a broken GTK+ package. *** 6th January '99: wxWidgets 2.0 beta 2 *** This is the second beta release and contains it mostly build and bug fixes. Threads work well now on (up-to-date) glibc 2 systems, commercial Unices and Windows. *** 20th December '98: wxWidgets 2.0 beta 1 *** This is the first beta release and we have used the time before this release to tidy up some parts of the API. All releases from now on will be source code compatible but we reserve binary compatibility for the final release. Because of this, the actual library name of the beta version will not be 2.0 but 1.99, so that we prevent conflicts with the final library later on. After the final release we'll only fix bugs so that there will be no reason to link any program statically with wxGTK. We changed the name of the shared library to include the version of the GTK used so that no conflicts emerge with simultaneous versions of wxWidgets for GTK 1.0 and for GTK 1.2 and so on. As you can see, we have not moved to GTK 1.1.X as the different development versions are too different and buggy to be useful. We'll wait for a stable GTK 1.2 release (hardly 1.2.0) and start porting then. wxGTK now compiles without problems on anything between gcc 2.7.2 on Linux-x86 and egcs 1.1 on Linux-Alpha and egcs 1.0 on Sparc. This isn't as easy as it sounds... Available form this site are the Python bindings of wxWidgets. Thanks to Robin Dunn for this tremendous contribution. Tkinter is dead, Java is dead, wxPython rules! That's all there is to say. Although only a few new classes have been added, many have been polished up substantially, the most visible are wxListCtrl, wxTreeCtrl and all classes related to printing. Also the DialogEd now functions much better than before. Drag'n'Drop is functional but probably won't be perfect until we use GTK 1.2 and its much improved DnD features. wxClipboard has arrived and works for text. Other formats have not been tested carefully yet. wxMiniFrame has been added which might be useful for docking toolbars etc. Someone has already done that for the MSW port and we hope to include his very nice work later. wxDirDialog has been added (thanks to Harm von der Heijden). The entire "tab traversal" system for moving from item to item in a dialog has been rewritten. It now completely overrides the not-so-well-done GTK native tab system. Quite much has been done to improve the wxImage class, which is now available in the Windows port as well. Very useful for anything related to image processing. wxGTK also uses this class internally e.g. to scale bitmaps when the scale factor (e.g. zooming) of a drawing context has changed. Some of the small and handy classes (wxDate, wxTime, wxVariant) have received a face-lift. wxList has been rewritten to make it possible to write type-safe lists. The collection of utility functions (wxFileFind etc) has been revamped and cleaned-up (thanks to Vadim Zeitlin, who has also greatly enhanced many basic classes, ranging wxString to the debug and log system). We removed some constructors of GDI classes (such as wxPen, wxColour) which took a pointer as a parameter. This lead to many errors among users resulting in unexpected behaviour so it was decided to remove these constructors. As the number of users and the number of test programs and samples is steadily rising the core classes of wxWidgets for MSW and GTK 1.0 can be considered to be very stable if not outright bug-free. I haven't seen a crash for weeks now and wxWidgets' internal debug features also have improved every week, making stepping-through with a debugger almost completely unnecessary as the library reports possible errors itself (when in debug mode).