git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			2237 lines
		
	
	
		
			87 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2237 lines
		
	
	
		
			87 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ------------------------
 | ||
| wxWidgets 2.5 Change Log
 | ||
| ------------------------
 | ||
| 
 | ||
| INCOMPATIBLE CHANGES SINCE 2.4.x
 | ||
| ================================
 | ||
| 
 | ||
|     Please take a few minutes to read the following list, especially
 | ||
|     paying attention to the most important changes which are marked
 | ||
|     with '!' in the first column.
 | ||
| 
 | ||
|     Also please note that you should ensure that WXWIN_COMPATIBILITY_2_4
 | ||
|     is defined to 1 if you wish to retain maximal compatibility with 2.4
 | ||
|     series.
 | ||
| 
 | ||
| ! windows are no longer fully repainted when resized, use new style
 | ||
|   wxFULL_REPAINT_ON_RESIZE to force this (wxNO_FULL_REPAINT_ON_RESIZE still
 | ||
|   exists but doesn't do anything any more, this behaviour is default now)
 | ||
| 
 | ||
| ! wxWindow::m_font and m_backgroundColour/m_foregroundColour are no longer
 | ||
|   always set, use GetFont(), GetBack/ForegroundColour() to access
 | ||
|   them, and they will be dynamically determined if necessary.
 | ||
| 
 | ||
| 
 | ||
| ! The Sizers have had some fundamental internal changes in the 2.5.2
 | ||
|   and 2.5.3 releases intended to make them do more of the "Right
 | ||
|   Thing" but also be as backwards compatible as possible.  First a bit
 | ||
|   about how things used to work:
 | ||
| 
 | ||
|     * The size that a window had when Add()ed to the sizer was assumed
 | ||
|       to be its minimal size, and that size would always be used by
 | ||
|       default when calculating layout size and positions, and the
 | ||
|       sizer itself would keep track of that minimal size.
 | ||
| 
 | ||
|     * If the window item was Add()ed with the wxADJUST_MINSIZE flag
 | ||
|       then when layout was calculated the item's GetBestSize would be
 | ||
|       used to reset the minimal size that the sizer used.
 | ||
| 
 | ||
|   The main thrust of the new Sizer changes was to make behaviour like
 | ||
|   wxADJUST_MINSIZE be the default, and also to push the tracking of
 | ||
|   the minimal size to the window itself (since it knows its own needs)
 | ||
|   instead of having the sizer take care of it.  Consequently these
 | ||
|   changes were made:
 | ||
| 
 | ||
|     * The wxFIXED_MINSIZE flag was added to allow for the old
 | ||
|       behaviour.  When this flag is used the size a window has when
 | ||
|       Add()ed to the sizer will be treated as its minimal size and it
 | ||
|       will not be readjusted on each layout.
 | ||
| 
 | ||
|     * The min size stored in wxWindow and settable with SetSizeHints or
 | ||
|       SetMinSize will by default be used by the sizer (if it was set)
 | ||
|       as the minimal size of the sizer item.  If the minsize was not
 | ||
|       set (or was only partially set) then the window's best size is
 | ||
|       fetched and it is used instead of (or blended with) the minsize.
 | ||
|       wxWindow:GetBestFittingSize was added to facilitate getting the
 | ||
|       size to be used by the sizers.
 | ||
| 
 | ||
|     * The best size of a window is cached so it doesn't need to
 | ||
|       recaculated on every layout.  wxWindow::InvalidateBestSize was
 | ||
|       added and should be called (usually just internally in control
 | ||
|       methods) whenever something is done that would make the best
 | ||
|       size change.
 | ||
| 
 | ||
|     * All wxControls were changed to set the minsize to what is passed
 | ||
|       to the constructor or Create method, and also to set the real
 | ||
|       size of the control to the blending of the minsize and bestsize.
 | ||
|       wxWindow::SetBestFittingSize was added to help with this,
 | ||
|       although most controls don't need to call it directly because it
 | ||
|       is called indirectly via the SetInitialSize called in the base
 | ||
|       classes.
 | ||
| 
 | ||
|   At this time, the only situation known not to work the same as
 | ||
|   before is the following:
 | ||
| 
 | ||
|     win = new SomeWidget(parent);
 | ||
|     win->SetSize(SomeNonDefaultSize);
 | ||
|     sizer->Add(win);
 | ||
| 
 | ||
|   In this case the old code would have used the new size as the
 | ||
|   minimum, but now the sizer will use the default size as the minimum
 | ||
|   rather than the size set later.  It is an easy fix though, just move
 | ||
|   the specification of the size to the constructor (assuming that
 | ||
|   SomeWidget will set its minsize there like the rest of the controls
 | ||
|   do) or call SetMinSize instead of SetSize.
 | ||
| 
 | ||
|   In order to fit well with this new scheme of things, all wxControls
 | ||
|   or custom controls should do the following things.  (Depending on
 | ||
|   how they are used you may also want to do the same thing for
 | ||
|   non-control custom windows.)
 | ||
| 
 | ||
|     * Either override or inherit a meaningful DoGetBestSize method
 | ||
|       that calculates whatever size is "best" for the control.  Once
 | ||
|       that size is calculated then there should normally be a call to
 | ||
|       CacheBestSize to save it for later use, unless for some reason
 | ||
|       you want the best size to be recalculated on every layout.
 | ||
| 
 | ||
|     * Any method that changes the attributes of the control such that
 | ||
|       the best size will change should call InvalidateBestSize so it
 | ||
|       will be recalculated the next time it is needed.
 | ||
| 
 | ||
|     * The control's constructor and/or Create method should ensure
 | ||
|       that the minsize is set to the size passed in, and that the
 | ||
|       control is sized to a blending of the min size and best size.
 | ||
|       This can be done by calling SetBestFittingSize.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| - no initialization/cleanup can be done in wxApp/~wxApp because they are
 | ||
|   now called much earlier/later than before; please move any exiting code
 | ||
|   from there to wxApp::OnInit()/OnExit()
 | ||
| - also, OnExit() is not called if OnInit() fails
 | ||
| - finally the program exit code is OnRun() return value, not OnExit() one
 | ||
| - wxTheApp can't be assigned to any longer, use wxApp::SetInstance() instead
 | ||
| - wxFileType::GetIcon() returns wxIconLocation, not wxIcon
 | ||
| - wxColourDatabase is not a wxList any more, use AddColour to add new colours
 | ||
| - wxWindow::Clear() is now called ClearBackground()
 | ||
| - pointer returned by wxFont::GetNativeFontInfo() must not be deleted now
 | ||
| - wxMouseEvent::Moving() doesn't return true if mouse is being dragged any more
 | ||
| - (most) controls now inherit parents colours by default, override
 | ||
|   ShouldInheritColours() to return false if you don't want this to happen
 | ||
| - wxApp::SendIdleEvent() now takes 2 arguments
 | ||
| - wxTabView::GetLayers() changed return type from wxList& to wxTabLayerList&
 | ||
|   (when WXWIN_COMPATIBILITY_2_4 == 0)
 | ||
| - wxID_SEPARATOR (id used for the menu separators) value changed from -1 to -2
 | ||
| - wxGetNumberFromUser() is now in separate wx/numdlg.h, not wx/textdlg.h
 | ||
| - wxChoice and wxCombobox now handle their size in the same way as in all the
 | ||
|   other ports under MSW, new code is actually correct but different from weird
 | ||
|   stuff they were doing before so the behaviour of your programs might change
 | ||
| - wxTaskBarIcon objects must now be destroyed before the application can exit.
 | ||
|   Previously, the application terminated if there were no top level windows;
 | ||
|   now it terminates if there are no top level windows or taskbar icons left.
 | ||
| - wxZlibInputStream is not by default compatible with the output of the
 | ||
|   2.4.x version of wxZlibOutputStream. However, there is a compatibilty mode,
 | ||
|   switched on by passing wxZLIB_24COMPATIBLE to the constructor.
 | ||
| - when WXWIN_COMPATIBILITY_2_4 == 0 wxHashTable uses a new implementation
 | ||
|   not using wxList keyed interface (the same used when wxUSE_STL == 1),
 | ||
|   the only incompatibility being that Next() returns a wxHashTable::Node*
 | ||
|   instead of a wxNode*.
 | ||
| - non-const wxDC methods GetBackground(), GetBrush(), GetFont() and GetPen()
 | ||
|   as well as wxWindow methods GetFont() and GetCursor() don't exist any more,
 | ||
|   please fix your code -- it never worked correctly anyhow if you modified the
 | ||
|   objects returned by these methods so you should simply switch to using const
 | ||
|   methods.
 | ||
| - wxWindow::GetFont() now returns wxFont object instead of reference
 | ||
| - EVT_XXX macros are now type-safe; code that uses wrong type for event
 | ||
|   handler's argument will no longer compile.
 | ||
| - Identical functionality of wxFileDialog::ParseWildcard,
 | ||
|   wxGenericDirCtrl::ParseFilter, Motif and MSW parsing native dialogs
 | ||
|   is now accessible in ::wxParseCommonDialogsFilter
 | ||
| - wxNotebookSizer and wxBookCtrlSizer are now deprecated -- they are no longer
 | ||
|   needed, you can treat wxNotebook as any other control and put it directly
 | ||
|   into the sizer that was wxNotebookSizer's parent sizer in old code.
 | ||
| - wxFile methods now return wxFileOffset which may be a 64 bit integer type,
 | ||
|   even on 32 bit platforms, instead of off_t and so the return value of
 | ||
|   wxFile::Length(), for example, shouldn't be assigned to off_t variable any
 | ||
|   more (the compiler might warn you about this).
 | ||
| - wxListItem::m_data is now of type wxUIntPtr, not long, for compatibility
 | ||
|   with 64 bit systems
 | ||
| 
 | ||
| 
 | ||
| DEPRECATED METHODS SINCE 2.4.x
 | ||
| ==============================
 | ||
| 
 | ||
| Deprecated methods may still be used but will disappear in future wxWidgets
 | ||
| versions, please update your code to not use them.
 | ||
| 
 | ||
| - wxDocManager::GetNoHistoryFiles() renamed to GetHistoryFilesCount()
 | ||
| - wxSizer::Remove(wxWindow *), use Detach() instead [it is more clear]
 | ||
| - wxSizer::Set/GetOption(): use Set/GetProportion() instead
 | ||
| - wxKeyEvent::KeyCode(): use GetKeyCode instead
 | ||
| - wxList::Number, First, Last, Nth: use GetCount, GetFirst/Last, Item instead
 | ||
| - wxNode::Next, Previous, Data: use GetNext, GetPrevious, GetData instead
 | ||
| - wxListBase::operator wxList&(): use typesafe lists instead
 | ||
| - wxTheFontMapper: use wxFontMapper::Get() instead
 | ||
| - wxStringHashTable: use wxHashMap instead
 | ||
| - wxHashTableLong: use wxHashMap instead
 | ||
| - wxArrayString::GetStringArray: use wxCArrayString or alternative wxWidgets
 | ||
|                                  methods taking wxArrayString
 | ||
| - wxArrayString::Remove(index, count): use RemoveAt instead
 | ||
| - wxTreeItemId conversion to long is deprecated and shouldn't be used
 | ||
| - wxTreeCtrl::GetFirst/NextChild() 2nd argument now has type wxTreeItemIdValue
 | ||
|   and not long, please change declarations of "cookie"s in your code
 | ||
|   accordingly -- otherwise your code won't work on 64 bit platforms
 | ||
| - [MSW only] wxWindow::GetUseCtl3D(), GetTransparentBackground() and
 | ||
|              SetTransparent() as well as wxNO_3D and wxUSER_COLOURS styles
 | ||
| - wxList keyed interface: use wxHashMap instead
 | ||
| - wxColourDatabase::FindColour(): use Find() instead (NB: different ret type)
 | ||
| - wxHashTable::Next: use wxHashTable::Node* or
 | ||
|                      wxHashTable::compatibility_iterator to store the return
 | ||
|                      value
 | ||
| - wxWave class; use wxSound instead
 | ||
| - The wxHIDE_READONLY flag for wxFileDialog was not implemented
 | ||
|   and has now been removed
 | ||
| - wxTaskBarIcon::OnXXX() virtual methods: use events instead
 | ||
| - obsolete and not used wxUSE_GENERIC_DIALOGS_IN_MSW has been removed
 | ||
| - wxDbTable::wxDbTable with wxChar* deprecated, same with wxString& instead
 | ||
| 
 | ||
| 
 | ||
| OTHER CHANGES
 | ||
| =============
 | ||
| 
 | ||
| 2.5.4
 | ||
| -----
 | ||
| 
 | ||
| Unix:
 | ||
| 
 | ||
| - wxPuts() now correctly outputs trailing new line in Unicode build
 | ||
| 
 | ||
| 2.5.3
 | ||
| -----
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - support for huge (>2 Gb) files (Tim Kosse)
 | ||
| - number of fixes to wxPluginManager (Rick Brice, Hans Van Leemputten)
 | ||
| - fixed memory leak in wxURL when using a proxy (Steven Van Ingelgem)
 | ||
| - fixed bug in wxDateTime::Set(jdn) when DST was in effect
 | ||
| - fixed fatal bug in wxString when wxUSE_STL==1 (Kurt Granroth)
 | ||
| - support msgids in charsets other than C and languages other than English
 | ||
|   (based on patch by Stefan Kowski)
 | ||
| - added wxMicroSleep() and wxMilliSleep() replacing deprecated wxUsleep()
 | ||
| - basic UDP sockets support (Lenny Maiorani)
 | ||
| - fixed wxDateTime::GetWeekDayName() for some dates (Daniel Kaps)
 | ||
| - deprecated wxDateTime::SetToTheWeek() in favour of SetToWeekOfYear()
 | ||
| - active mode support in wxFTP (Randall Fox)
 | ||
| - sped up wxHTTP and wxFTP
 | ||
| - added wxStringInput/OutputStreams
 | ||
| - added wxFileConfig::Save(wxOutputStream)
 | ||
| - fixed wxString's behavior with inserted null characters
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - added wxWindow::MoveBefore/AfterInTabOrder() to change tab navigation order
 | ||
| - added wxTaskBarIcon::CreatePopupMenu which is now the recommended way
 | ||
|   of showing a popup menu; calling wxTaskBarIcon::PopupMenu directly
 | ||
|   is discouraged
 | ||
| - added ..._CMD_...(id) variants for wxGrid event table entry macros
 | ||
| - added wxWindow::Navigate for programmatic navigation to the next control
 | ||
| - wxTextCtrl::OnChar now inserts a tab character if wxTE_PROCESS_TAB is set
 | ||
| - added wxKeyEvent::GetUnicodeKey()
 | ||
| - added wxKeyEvent::CmdDown() and wxMouseEvent::CmdDown()
 | ||
| - implemented wxListCtrl::FindItem() for non-MSW (Robin Stoll)
 | ||
| - added status bar fields styles support (Tim Kosse)
 | ||
| - added convenience functions wxSizer::AddSpacer() and
 | ||
|   wxSizer::AddStretchSpacer() (as well as Prepend and Insert variants)
 | ||
| - added samples/splash
 | ||
| - added support for stock buttons
 | ||
| - added wxTopLevelWindow::RequestUserAttention()
 | ||
| - support for comma in contrib gizmo wxLEDNumberCtrl (Grant Likely)
 | ||
| - recursive wxSizer::Show for subsizer and return value if element was found
 | ||
| - added wxChoicebook control
 | ||
| - smoother time estimation updates in wxProgressDialog (Christian Sturmlechner)
 | ||
| - the XRC contrib library was moved to the core
 | ||
| - wx(Choice/List/Note)book controls send CHANG(ED/ING) events in SetSelection
 | ||
| - it is now possible to create a wxFont with given size in pixels (d2walter)
 | ||
| - added wxTopLevelWindow::IsActive()
 | ||
| - wxSystemSettings::GetMetric now returns -1 for metrics that are not
 | ||
|   supported, instead of zero.
 | ||
| 
 | ||
| Unix:
 | ||
| 
 | ||
| - wxTaskBarIcon now supports freedesktop.org System Tray protocol
 | ||
| - security fixes to wxSingleInstanceChecker
 | ||
| - wx-config script was modified to allow choosing from multiple installed
 | ||
|   builds of wxWidgets and to return flags/libs for selected libraries only
 | ||
| - wx-config has new --version-full option
 | ||
| 
 | ||
| wxCocoa:
 | ||
| 
 | ||
| - added Unicode compatability layer for OSX 10.2
 | ||
| - fixed so that wxCocoa runs in OSX 10.2 
 | ||
| - Tooltips now supported
 | ||
| - wxSound now supported
 | ||
| - wxDisplay now supported 
 | ||
| - Some stock cursors now supported 
 | ||
| 
 | ||
| wxMac:
 | ||
| 
 | ||
| - fixed MLTE text control GetLineText and GetLineLength on OSX 
 | ||
| - added OSX wxTaskBarIcon implementation for the OSX Dock 
 | ||
| - added Unicode compatability layer for OSX 10.2
 | ||
| - wxGetKeyState now works with nearly all wx key codes
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - wxGTK uses GTK+ 2.x by default now, you have to pass --disable-gtk2 to
 | ||
|   configure if you want to use GTK+ 1.2
 | ||
| - fixed many rendering artifacts and wrong colours with lots of GTK+ themes
 | ||
| - implemented wxColourDialog as native dialog
 | ||
| - implemented wxTextCtrl::HitTest() (GTK+ >= 2)
 | ||
| - implemented wxTextCtrl::ScrollLines() and ScrollPages for GTK+ 2.x
 | ||
| - wxTreeCtrl::GetCount() counts root as well now (compatible with MSW)
 | ||
| - added support for wxCHK_3STATE style (GTK2 only)
 | ||
| - implemented text underlining under GTK2
 | ||
| - implemented wxFRAME_NO_TASKBAR style (GTK >= 2.2)
 | ||
| - implemented support for wxSYS_DCLICK_?, wxSYS_DRAG_? and wxSYS_CURSOR_?
 | ||
|   in wxSystemSettings::GetMetric (Mart Raudsepp)
 | ||
| - implemented wxTopLevel::IsMaximized() for GTK+2 and WMs that implement
 | ||
|   freedesktop.org's wm-spec (Mart Raudsepp)
 | ||
| - wxEVT_CONTEXT_MENU is now generated for right mouse press, not release
 | ||
| - implemented alpha channel support in wxBitmap
 | ||
| - added native GTK+2 wxArtProvider implementation with ability to load
 | ||
|   icons from icon theme in addition to recognized stock art
 | ||
| - fixed crash on 64 bit platforms (Paul Cornett)
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - added support for wxCHK_3STATE style (3 state checkbox)
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - fixed UNC paths handling in wxFileSystem (Daniel Nash)
 | ||
| - set wxKeyEvent::m_uniChar in Unicode build
 | ||
| - support for alpha channel in toolbar bitmaps (Jurgen Doornik)
 | ||
| - wxFileDialog can now be moved and centered (Randall Fox)
 | ||
| - restored (and improved) possibility to use wx with MFC broken in 2.5.2
 | ||
| - fixed wxTextCtrl::SetMaxLength for rich edit controls
 | ||
| - fixed flat style for toolbars under XP, Windows Classic style
 | ||
| - fixed truncation of transferred data in wxConnection under unicode build
 | ||
| - wxChoice and wxComboBox dropdown background can be set now too (Adrian Lupei)
 | ||
| - fixed wxMaximizeEvent generation in wxFrame
 | ||
| - don't send duplicate EVT_COMBOBOX events whenever selection changes any more
 | ||
| - implemented support for selecting printer bin (Steven Van Ingelgem)
 | ||
| - fixed wxListCtrl::SetSingleStyle() which was broken since a few releases
 | ||
| - fixed print setup problem (always uses default printer) in Unicode build
 | ||
| 
 | ||
| wxUniv/X11:
 | ||
| 
 | ||
| - fixed fatal crash when opening a menu
 | ||
| 
 | ||
| wxWinCE:
 | ||
| 
 | ||
| - added native WinCE driven smartphone wxTextCtrl implementation using spinners
 | ||
| - added native WinCE driven smartphone wxChoice implementation using spinners
 | ||
| - added automatized but customizable handling of native WinCE driven smartphone menus
 | ||
| - fixed wxRadioBox and wxStaticBox
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - added support for nested index entries and index entries pointing to more
 | ||
|   than one page to wxHtmlHelpController
 | ||
| 
 | ||
| 
 | ||
| 2.5.2
 | ||
| -----
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - Hindi translation added (Dhananjaya Sharma)
 | ||
| - Brazilian Portuguese translation added (E. A. Tacao)
 | ||
| - wxDynamicCast() now uses static_cast<wxObject *> internally and so using it
 | ||
|   with anything not deriving from wxObject will fail at compile time (instead
 | ||
|   of run-time) now
 | ||
| - when wxUSE_STL == 1 and STL provides quasi-standard hash_map/hash_set,
 | ||
|   wxHashMap/wxHashSet are just typedefs for them. This makes impossible
 | ||
|   to forward declare these classes.
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - wxHtmlWindow now delays image scaling until rendering,
 | ||
|   resulting in much better display of scaled images
 | ||
| - Added UpdateSize to wxSplitterWindow to allow layout while hidden
 | ||
| - implemented Freeze/Thaw() for wxGenericTreeCtrl (Kevin Hock)
 | ||
| - support for KOI8-U encoding added (Yuriy Tkachenko)
 | ||
| - The old wxADJUST_MINSIZE behaviour is now the default behaviour for
 | ||
|   sizer items that are windows.  This means that GetAdjustedBestSize
 | ||
|   will now be called by default to determine the minimum size that a
 | ||
|   window in a sizer should have.  If you want to still use the initial
 | ||
|   size (and not the BestSize) then use the wxFIXED_MINSIZE flag.  When
 | ||
|   windows are added to a sizer their initial size is made the window's
 | ||
|   min size using SetSizeHints, and calls to wxSizer::SetItemMinSize
 | ||
|   are also forwarded to SetSizeHints for window items.
 | ||
| - added wxRegEx::GetMatchCount()
 | ||
| - it is now possible to display images in wxHtmlListBox
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxWindow::Freeze()/Thaw() can now be nested
 | ||
| - Added wxSP_NO_XP_THEME style to wxSplitterWindow to switch off
 | ||
|   XP theming (some applications look bad without 3D borders)
 | ||
| - wxMenuBar::GetLabelTop() doesn't include '&'s in the label any more
 | ||
| - wxRegConf couldn't read global settings without admin privileges and didn't
 | ||
|   even try to do it by default -- now it does
 | ||
| - wxTaskBarIcon must be explicitly destroyed now, otherwise the application
 | ||
|   won't exit even though there are no top level windows
 | ||
| - wxFileName::GetModificationTime() works with opened files too now
 | ||
| - wxDC::GetClippingBox() now works even for clipping regions created by Windows
 | ||
| - fixed wxFileDataObject in Unicode build (Alex D)
 | ||
| - subdindented paragraphs support (Tim Kosse)
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - added support for wxTE_RIGHT and wxTE_CENTRE styles under GTK2 (Mart Raudsepp)
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - removed wxMenuItem::DeleteSubMenu()
 | ||
| - wxButtons use Motif default size, which is smaller than it used to be
 | ||
|   and closer to wxMSW/wxGTK look. This can be disabled by setting
 | ||
|   motif.largebuttons system option to 1 (see wxSystemOptions).
 | ||
| 
 | ||
| wxUniv/X11:
 | ||
| 
 | ||
| - implemented DrawRoundedRectangle() (clawghoul)
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - improved tables and lists layout algorithms (Tim Kosse)
 | ||
| - <div> handling fix (Xavier Nodet)
 | ||
| 
 | ||
| Unix:
 | ||
| 
 | ||
| - fixed priorities of mailcap entries (David Hart)
 | ||
| - added "wx-config --libs=std,<extra>" syntax (i.e. support for "std")
 | ||
| 
 | ||
| wxODBC:
 | ||
| 
 | ||
| - Full Unicode support is now available
 | ||
| - BLOB support is working
 | ||
| 
 | ||
| 
 | ||
| 2.5.1
 | ||
| -----
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - event table macros now do some minimal type safety checks (Michael S<>gtrop)
 | ||
| - added wxGzipInput/OutputStream, bug fixes in wxZlibStreams (M.J.Wetherell)
 | ||
| - wxDateTime::ParseDateTime() implemented (Linus McCabe)
 | ||
| - wxHTTP::GetResponse() added (David Nock)
 | ||
| - added conversions to/from UTF 16/32 LE/BE (Andreas Pflug)
 | ||
| - added wxTextInputStream::ReadChar() (M.J.Wetherell)
 | ||
| - added translation to Afrikaans (Petri Jooste)
 | ||
| - Spanish translations updated (Javier San Jose)
 | ||
| - added gettext plural forms support to wxLocale (Michael N. Filippov)
 | ||
| - wxFileName::Normalize(wxPATH_NORM_ALL) doesn't lower filename case any more
 | ||
| - wxFileName::Normalize(wxPATH_NORM_ENV_VARS) now works
 | ||
| - check if file exists in wxFileConfig::DeleteFile() (Christian Sturmlechner)
 | ||
| - when wxUSE_STL == 1 wxHashTable will not be implemented using wxHashMap
 | ||
|   (as in 2.5.0).
 | ||
| - added some extra convenience functions to wxRect such as
 | ||
|   GetBottomRight (Hajo Kirchhoff)
 | ||
| - changed built-in regex library to a Unicode-compatible version based
 | ||
|   on TCL sources (Ryan Norton, M. J. Wetherell)
 | ||
| - added extra convenience functions to wxPoint for adding a
 | ||
|   wxSize (Wlodzimierz Skiba)
 | ||
| - intermediate wxIPaddress class added to prepare for
 | ||
|   wxIPV6address (Ray Gilbert)
 | ||
| - added overloaded constructors and Create() methods taking wxArrayString
 | ||
|   for wxChoice, wxComboBox, wxListBox, wxRadioBox, wxCheckListBox,
 | ||
|   wxSingleChoiceDialog, wxMultipleChoiceDialog
 | ||
| - renamed wxWave class to wxSound
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - added 3-state checkboxes for MSW/Mac (Dimitri Schoolwerth)
 | ||
| - added some support for C++ exceptions in the library (do read the manual!)
 | ||
| - added wxListCtrl::GetViewRect()
 | ||
| - added wxTextCtrl::MarkDirty()
 | ||
| - wxToolBar::ToggleTool() now works for radio buttons (Dag <20>gren)
 | ||
| - wxListCtrl now sends an END_LABEL event if editing was cancelled, too
 | ||
| - bug in wxRect ctor from two [out of order] wxPoints fixed (Steve Cornett)
 | ||
| - status text is now restored after wxMenu help is shown in it
 | ||
| - bug in wxWindow::RemoveEventHandler() fixed (Yingjun Zhang)
 | ||
| - make it possible to use wxRTTI macros with namespaces (Benjamin I. Williams)
 | ||
| - wxColourDatabase API now uses objects instead of pointers
 | ||
| - added resolution option to JPEG image handler (Jeff Burton)
 | ||
| - added wxCalendarEvent::SetDate, wxCalendarEvent::SetWeekDay
 | ||
| - wxGenericDirCtrl now accepts multiple wildcards
 | ||
| - added focus event forwarding to wxGrid (Peter Laufenberg)
 | ||
| - fixed scrollbar problem in wxGrid (not showing scrollbars
 | ||
|   when sizing smaller) (Shane Harper)
 | ||
| - dbbrowse demo fixed for Unicode (Wlodzimierz Skiba)
 | ||
| - added wxStatusBar support to XRC (Brian Ravnsgaard Riis)
 | ||
| - wxMenu::Append and etc. return a pointer to the wxMenuItem that was
 | ||
|   added or inserted, or NULL on failure.
 | ||
| - using a -1 (wxID_ANY) for menu or toolbar item IDs will now generate new id
 | ||
| - added option to generate C++ headers to wxrc utility (Eduardo Marques)
 | ||
| - added wxDC::DrawPolyPolygon() for MSW/PS (Carl-Friedrich Braun)
 | ||
| - wxBufferedDC now allows to preserve the background and is documented
 | ||
| - added wxDC::GetPartialTextExtents
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxWidgets now builds under Win64
 | ||
| - fixed DDE memory leaks
 | ||
| - fixed wxTE_*WRAP styles handling
 | ||
| - wxTextCtrl::GetValue() works with text in non default encoding
 | ||
| - changed wxCrashReport to generate minidumps instead of text files
 | ||
| - wxRadioButtons are now checked when they get focus (standard behaviour)
 | ||
| - several fixes to owner drawn menu items (Christian Sturmlechner)
 | ||
| - wxGauge now supports full 32 bit range (Miroslav Rajcic)
 | ||
| - make it possible to give focus to the notebook tabs (Hajo Kirchhoff)
 | ||
| - MDI child frames are not always resizeable any more (Andrei Fortuna)
 | ||
| - fixed enumerating of entries/groups under '/' in wxRegConfig
 | ||
| - added wxSYS_ICONTITLE_FONT (Andreas Pflug)
 | ||
| - added wxPATH_NORM_SHORTCUT to wxFileName
 | ||
| - wxComboBox::GetValue within a wxEVT_COMMAND_TEXT_UPDATED event
 | ||
|   should now pass the correct value even if the handler for
 | ||
|   wxEVT_COMMAND_COMBOBOX_SELECTED changed the selection
 | ||
| - wxFileDialog now returns correct filter index for multiple-file dialogs
 | ||
| - added wxTextCtrl::HitTest()
 | ||
| - experimental wxURL implementation using WinInet functions (Hajo Kirchhoff)
 | ||
| - fixed several bugs in wxNotebook with wxNB_MULTILINE style
 | ||
| - accelerators are now initially hidden if appropriate (Peter Nielsen)
 | ||
| - background colour of a wxComboBox may now be set
 | ||
| - fixed wxListCtrl::GetItemText/BackgroundColour()
 | ||
| - Esc can now be used to close menus in the dialogs (Hartmut Honisch)
 | ||
| - Added msw.remap system option so colourful toolbar buttons
 | ||
|   aren't mangled if you set it to 0. The default is 1
 | ||
| - Toolbar buttons are now centred if the bitmap size is smaller
 | ||
|   than the specified default size
 | ||
| - Fixed a bug in wxSpinCtrl::DoGetBestSize that would make wxSpinCtrl too tall
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - fixes to wxTextCtrl scrolling under GTK2 (Nerijus Baliunas)
 | ||
| - fix for crash when using user-dashed lines (Chris Borgolte)
 | ||
| - fixed wxChoice::Delete() in presence of client data
 | ||
| - allow calling wxWindow::SetFont if window not yet created
 | ||
| - use same average character width as other ports when calculating dialog units
 | ||
| - fixed mouse wheel handling under GTK2 (Hugh Fisher)
 | ||
| - wxNotebook::HitTest() implemented (Daniel Lundqvist)
 | ||
| - memory leaks fixes in wxFileDialog (John Labenski)
 | ||
| - don't drop click events from triple clicks (Frode Solheim)
 | ||
| 
 | ||
| wxMac:
 | ||
| 
 | ||
| - use same average character width as other ports when calculating dialog units
 | ||
| - implemented handling of mouse wheel
 | ||
| - fix for long file names (longer than 32 characters) in file dialogs
 | ||
| - use unix sockets for Mach-o builds
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - look for Motif 2.1 headers before Motif 1.2 ones in configure
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - wxHtmlHelpController now supports compressed MS HTML Help files (*.chm)
 | ||
|   on Unix (Markus Sinner)
 | ||
| 
 | ||
| Unix:
 | ||
| 
 | ||
| - added XFree86 resolution changing using xf86vidmode extensions (Ryan Norton)
 | ||
| - implemented asynchronous playback in wxSound and added SDL backend in
 | ||
|   addition to existing OSS one
 | ||
| - it is now possible to send PostScript to any output stream (Zoltan Kovacs)
 | ||
| 
 | ||
| 
 | ||
| 2.5.0
 | ||
| -----
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - It is now possible to build several smaller libraries instead of single
 | ||
|   huge wxWidgets library; wxBase is now dependency of GUI ports rather then
 | ||
|   separately compiled library
 | ||
| - added wxDateSpan::operator==() and !=() (Lukasz Michalski)
 | ||
| - added wxFileName::GetForbiddenChars() (Dimitri Schoolwerth)
 | ||
| - use true/false throughout the library instead of TRUE/FALSE
 | ||
| - wxStopWatch::Start() resumes the stop watch if paused, as per the docs
 | ||
| - added wxDirTraverser::OnOpenError() to customize the error handling
 | ||
| - added wxArray::SetCount()
 | ||
| - wxFile, wxFFile, wxTextFile and wxTempFile now all use UTF-8 encoding
 | ||
|   by default in Unicode mode
 | ||
| - bug in wxDateTime with timezones on systems with tm_gmtoff in struct tm fixed
 | ||
| - added wx/math.h (John Labenski)
 | ||
| - added Catalan translations (Pau Bosch i Crespo)
 | ||
| - added Ukrainian translations (Eugene Manko)
 | ||
| - fixed bug with deleting entries at root level in wxFileConfig
 | ||
| - chkconf.h now includes platform-specific versions (for MSW
 | ||
|   and Mac) which contain some tests that were in setup.h
 | ||
| - added event sink argument to wxEvtHandler::Connect()
 | ||
| - added support for POST method and alt ports to wxHTTP (Roger Chickering)
 | ||
| - added wxSocket::IPAddress() (Chris Mellon)
 | ||
| - wxDataStreams can read/write many elements at once (Mickael Gilabert)
 | ||
| - added wxRecursionGuard class
 | ||
| - added wxThreadHelper class (Daniel Howard)
 | ||
| - Added STL support (--enable-stl for configure, wxUSE_STL in setup.h).
 | ||
|   When enabled, wxString will derive from std::string, wxArray from,
 | ||
|   std::vector, wxList from std::list. In addition wxHashTable will be
 | ||
|   implemented in terms of wxHashMap.
 | ||
| - Added wxList::compatibility_iterator. Can be used like wxNode* (except
 | ||
|   it can't be delete()d). It permits writing code which will work
 | ||
|   both with wxUSE_STL==1 and wxUSE_STL==0.
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - added Watcom makefiles
 | ||
| - fixed bug with searching in sorted arrays (J<>rgen Palm)
 | ||
| 
 | ||
| All GUI ports:
 | ||
| 
 | ||
| - added wxVScrolledWindow, wxVListBox and wxHtmlLbox classes
 | ||
| - added wxListbook control
 | ||
| - added alpha channel support to wxImage
 | ||
| - added wxRenderer class allowing to customize the drawing of generic controls
 | ||
| - added wxCLOSE_BOX style for dialogs and frames
 | ||
| - added wxSplitterWindow and wxWizard handlers to XRC
 | ||
| - wxWizard is now sizer-friendly and may be made resizeable (Robert Vazan)
 | ||
| - added proportion to wxFlexGridSizer::AddGrowableRow/Col (Maxim Babitski)
 | ||
| - added wxFlexGridSizer::SetFlexibleDirection() (Szczepan Holyszewski)
 | ||
| - implemented GetEditControl for wxGenericTreeCtrl (Peter Stieber)
 | ||
| - improved contrib/utils/convertrc parsing (David J. Cooke)
 | ||
| - fixed handling of URLs and filenames in wxFileSystem
 | ||
| - implemented alignment for wxGrid bool editor and renderer
 | ||
| - support wxListCtrl columns alignment for all platforms and not just MSW
 | ||
| - added wxToolBar Add/InsertTool(tool) (Janusz Piwowarski)
 | ||
| - added wxTB_HORZ_TEXT style for MSW and GTK (Axel Schlueter)
 | ||
| - fixed user dash handling for MSW and GTK (Ken Edwards)
 | ||
| - WXR resources can now be used in Unicode builds
 | ||
| - it is now possible to use several wxFileHistory objects in the same menu
 | ||
|   by giving them different base IDs (Dimitri Schoolwerth)
 | ||
| - Added wxTLW::SetShape with implementations for wxMSW and wxGTK (so far)
 | ||
| - FL: rmoved const from EnableTool parameters
 | ||
| - FL: signal child window when toolbar is closed
 | ||
| - In various places, changed tests for pathsep on last char of string to call
 | ||
|   wxEndsWithPathSeparator(s)
 | ||
| - Added to defs.h a couple of macros (wxPtrToULong & wxULongToPtr)
 | ||
| - Minor improvements to document/view framework, including
 | ||
|   delayed deletion of a document (until after the user has chosen
 | ||
|   a new document), and more intelligent addition of filenames to
 | ||
|   the file history, including not adding filenames if not using the
 | ||
|   default extension for the template
 | ||
| - sped up wxImage::Scale using fixed point arithmetic (Wade Brainerd)
 | ||
| - Added BLOB support to wxDB (John Skiff)
 | ||
| - wxWizard now validates when pressing Back or Next
 | ||
| - Implemented wxNotebook::DoGetBestSize so Fit now works
 | ||
| - Added FindItemByPosition to wxMenu
 | ||
| - wxTimer now derives from wxEvtHandler and is its own owner object by default
 | ||
| - Extended wxTextAttr and added wxTextCtrl::GetStyle stub
 | ||
|   to allow better rich text support.
 | ||
| - implemented wxFlexGridSizer::Show() (Wade Brainerd)
 | ||
| - Added m_ prefix to wxColourData and wxFontData members
 | ||
| - Added wxHtmlPrintout::AddFilter so HTML printing can be subject to
 | ||
|   custom filters as well as HTML viewing.
 | ||
| - Moved wxApp::SendIdleEvents and wxApp::ProcessIdle into common code.
 | ||
| - wxWindow::OnInternalIdle is now used in all ports, and ensures that
 | ||
|   user OnIdle events do not interfere with crucial internal processing.
 | ||
| - wxWindow::UpdateWindowUI is now a documented function that
 | ||
|   sends wxUpdateUIEvents, and can be overridden. It has a helper function
 | ||
|   DoUpdateWindowUI for taking appropriate wxUpdateUIEvent action.
 | ||
| - Added functions to wxUpdateUIEvent: Set/GetMode, Set/GetUpdateInterval,
 | ||
|   CanUpdate, to assist with optimising update event frequency.
 | ||
| - Added functions to wxIdleEvent: Set/GetMode, CanSend, to
 | ||
|   determine whether a window should receive idle events.
 | ||
| - Added wxWS_EX_PROCESS_IDLE, wxWS_EX_PROCESS_UI_UPDATES window
 | ||
|   styles for use with conservative idle and update event modes.
 | ||
| - send menu update events only when a menu is about to be used (MSW/GTK)
 | ||
| - improved event processing performance (Hans Van Leemputten)
 | ||
| - added wxMirrorDC class
 | ||
| - printing improvements: GetPageInfo() gets called after the DC has
 | ||
|   been set and after OnPreparePrinting() has been called so it can
 | ||
|   report the number of pages accurately; doesn't try to set
 | ||
|   number of pages in print dialog, in common with other Windows apps;
 | ||
|   wxHTML easy printing's preview shows number of pages
 | ||
|   correctly; preview scrollbars are set correctly; keyboard navigation
 | ||
|   improved
 | ||
| 
 | ||
| Unix:
 | ||
| 
 | ||
| - fixed compilation on systems with zlib installed but < 1.1.3 version
 | ||
| - fixed compilation on Solaris 7 with large files support enabled
 | ||
| - added wxTaskBarIcon implementation for X11
 | ||
| - added support for GNU/Hurd in configure
 | ||
| - wxLocale::Init now tries to set .utf8 locale in Unicode mode (Andreas Pflug)
 | ||
| 
 | ||
| Generic controls:
 | ||
| 
 | ||
| - implemented wxListCtrl::Refresh() (Norbert Berzen)
 | ||
| - support adding/removing columns dynamically (Donald C. Taylor)
 | ||
| - wxToolBarSimple, property list classes, wxTreeLayout moved
 | ||
|   to contrib/src/deprecated
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - added support for label mnemonics to GTK+2 build (Michael Moss)
 | ||
| - added native wxMessageDialog implementation for GTK+2 build
 | ||
| - fixed wxMenu::Remove (John Skiff and Benjamin Williams)
 | ||
| - made wxTextCtrl::EmulateKeyPress() work for Delete and Backspace
 | ||
| - fixed wxTopLevelWindow::ShowFullScreen to work with kwin, IceWM and
 | ||
|   window managers that support _NET_WM_STATE_FULLSCREEN
 | ||
| - added wxEVT_MENU_OPEN event generation
 | ||
| - fixed bug in generic file selector causing incomplete file extensions to
 | ||
|   be appended to filenames with no extension
 | ||
| - added wxTextCtrl::SetSelection implementation for GTK+ 2
 | ||
| - fixed wxTextCtrl::IsEditable() for GTK+ 2
 | ||
| - fixed wxStaticText alignment for GTK+ 2 (Kevin Hock)
 | ||
| - don't consume 100% CPU when showing a poup menu
 | ||
| 
 | ||
| wxMac:
 | ||
| 
 | ||
| - generate wxEVT_SCROLL_THUMBRELEASE and wxEVT_SCROLLWIN_THUMBRELEASE events
 | ||
| - generate wxEVT_MENU_OPEN and wxEVT_MENU_CLOSE events
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - possibility to use DIBs for wxBitmap implementation (Derry Bryson)
 | ||
| - added wxCrashReport
 | ||
| - wxStaticBitmap doesn't stretch its bitmap any longer (like other ports)
 | ||
| - support for accelerator keys in the owner drawn menus (Derry Bryson)
 | ||
| - wxCaret::SetSize() doesn't hide the caret any longer as it used to
 | ||
| - wxCheckListBox::Check() doesn't send CHECKLISTBOX_TOGGLE event any more
 | ||
| - fixed bugs in wxThread::Wait() and IsAlive()
 | ||
| - fixed bug with wxTR_EDIT_LABELS not working with wxTR_MULTIPLE
 | ||
| - fixes for compilation with OpenWatcom and DigitalMars compilers
 | ||
| - fixed wxStaticText best size calculation (was wrong by '&' width)
 | ||
| - fixed calling wxFrame::Maximize(FALSE) before the window is shown
 | ||
| - added wxNotebook::HitTest() (Otto Wyss)
 | ||
| - libraries built with makefile.g95 have a _min or _cyg suffix (MinGW/Cygwin)
 | ||
| - when using DLL, wxLocalFSHandler was not being exported
 | ||
| - fixed problem with wxEvtHandler object not removed from wxPendingEvents
 | ||
| - Windows XP manifest is now included in wx.rc; it is no longer neccessary
 | ||
|   to ship .exe.manifest file with applications to support XP themes
 | ||
| - wxLocale::Init no longer reports error if trying to set Unicode-only locale
 | ||
|   or if user's default locale is Unicode-only
 | ||
| - improved border handling under Windows XP
 | ||
| - partial fix for wxNotebook pages looking bad under XP: wxUSE_UXTHEME
 | ||
|   enables XP theme engine code, and wxUSE_UXTHEME_AUTO tells
 | ||
|   wxWidgets to use the theme tab colour for control backgrounds.
 | ||
| - disable wxNB_RIGHT, wxNB_LEFT, wxNB_BOTTOM notebook styles under Windows XP
 | ||
| - fixed release mode build with VC 7.x (Martin Ecker)
 | ||
| - added support for wxALWAYS_SHOW_SB style
 | ||
| - you don't need to add opengl32.lib when using VC++ now (David Falkinder)
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - made wxFileDialog behaviour with complex wildcards more sensible (it still
 | ||
|   does not support all the features other ports do); refer to wxFileDialog
 | ||
|   documentation for a detailed explanation
 | ||
| - implemented wxWakeUpIdle
 | ||
| - for Motif 2.0, used the native combobox widget instead of the GPL'd
 | ||
|   xmcombo; xmcombo is still used for Motif 1.x and Lesstif when compiled
 | ||
|   with Motif 1.x compatibility
 | ||
| - implemented wxToggleButton
 | ||
| - wxRadioBox and wxStaticBox now use the default shadow (border) style
 | ||
|   instead of a sunken border
 | ||
| - implemented wxBitmapDataObject
 | ||
| - finished wxClipboard implementation
 | ||
| 
 | ||
| wxUniv:
 | ||
| 
 | ||
| - controls in toolbars now supported
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - added text selection to wxHtmlWindow
 | ||
| - added SetFonts to HTML printing classes (Adrian Philip Look)
 | ||
| - it is now possible to force page break when printing by inserting
 | ||
|   <div style="page-break-before:always"> into the markup (Greg Chicares)
 | ||
| - wxHtmlWindow now uses double buffering to prevent flicker
 | ||
| 
 | ||
| 
 | ||
| OLD CHANGES
 | ||
| ===========
 | ||
| 
 | ||
| INCOMPATIBLE CHANGES SINCE 2.2.x
 | ||
| ================================
 | ||
| 
 | ||
|     Please take a few minutes to read the following list, especially
 | ||
|     paying attention to the most important changes which are marked
 | ||
|     with '!' in the first column.
 | ||
| 
 | ||
|     Also please note that you should ensure that WXWIN_COMPATIBILITY_2_2
 | ||
|     is defined to 1 if you wish to retain maximal compatibility with 2.2
 | ||
|     series -- however you are also strongly encouraged to try to compile
 | ||
|     your code without this define as it won't be default any longer in
 | ||
|     2.6 release.
 | ||
| 
 | ||
|     NB: if you want to build your program with different major versions
 | ||
|         of wxWidgets you will probably find the wxCHECK_VERSION() macro
 | ||
|         (see the documentation) useful.
 | ||
| 
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| ! wxArray<T>::Remove(size_t) has been removed to fix compilation problems
 | ||
|   under 64 bit architectures, please replace it with RemoveAt() in your
 | ||
|   code.
 | ||
| 
 | ||
| ! wxArray<T> macros have been changed to fix runtime problems under 64 bit
 | ||
|   architectures and as a side effect of this WX_DEFINE_ARRAY() can only be
 | ||
|   used now for the pointer types, WX_DEFINE_ARRAY_INT should be used for the
 | ||
|   arrays containing non-pointers.
 | ||
| 
 | ||
| - wxObject::CopyObject() and Clone() methods were removed because they
 | ||
|   simply don't make sense for all objects
 | ||
| 
 | ||
| - wxEvent now has a pure virtual Clone() method which must be implemented
 | ||
|   by all derived classes, if you have user-defined event classes please
 | ||
|   add "wxEvent *Clone() const { return new MyEvent(*this); }" line to them
 | ||
| 
 | ||
| - small change to wxStopWatch::Pause() semantics, please see the documentation
 | ||
| 
 | ||
| - unlikely but possible incompatibility: the definition of TRUE has changed
 | ||
|   from "1" to "(bool)1" (and the same thing for FALSE), so the code which
 | ||
|   could be erroneously compiled previously such as doing "return FALSE" from
 | ||
|   a function returning a pointer would stop compiling now (but this change
 | ||
|   is not supposed to have any effects on valid code)
 | ||
| 
 | ||
| - another minor change: wxApp::OnAssert() has a new "cond" argument, you
 | ||
|   must modify YourApp::OnAssert() signature if you were using it to override
 | ||
|   the default assert handling.
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| ! the event type constants are not constants any more but are dynamically
 | ||
|   allocated during run-time which means that they can't be used as case labels
 | ||
|   in the switch()es, you must rewrite them to use if()s instead
 | ||
| 
 | ||
|   You may also define WXWIN_COMPATIBILITY_EVENT_TYPES to get the old behaviour
 | ||
|   but this is strongly discouraged, please consider changing your code
 | ||
|   instead!
 | ||
| 
 | ||
| ! wxDialog does not derive from wxPanel any longer - if you were using it in
 | ||
|   your code, please update it. The quick fix for the most cases is to replace
 | ||
|   the occurrences of wxPanel with wxWindow.
 | ||
| 
 | ||
| ! if you handle (and don't skip) EVT_KEY_DOWN, the EVT_CHAR event is not
 | ||
|   generated at all, so you must call event.Skip() in your OnKeyDown() if
 | ||
|   you want to get OnChar() as well
 | ||
| 
 | ||
| - in general, the key events sent for the various non ASCII key combinations
 | ||
|   have been changed to make them consistent over all supported platforms,
 | ||
|   please see the wxKeyEvent documentation for details
 | ||
| 
 | ||
| - wxYES_NO is now wxYES | wxNO and the manifest values of both wxYES and wxNO
 | ||
|   have changed (to fix some unfortunate clashes), please check your code to
 | ||
|   ensure that no tests for wxYES or wxNO are broken: for example, the following
 | ||
|   will *NOT* work any longer:
 | ||
| 
 | ||
|         if ( flags & wxYES_NO )
 | ||
|                 ... do something ...
 | ||
|         if ( flags & wxYES )
 | ||
|                 ... do something else ...
 | ||
| 
 | ||
| - static wxWizard::Create() doesn't exist any more, the wizards are created
 | ||
|   in the same way as all the other wxWindow objects, i.e. by directly using
 | ||
|   the ctor
 | ||
| 
 | ||
| - wxGLCanvas now derives directly from wxWindow, not wxScrolledWindow
 | ||
| 
 | ||
| - wxGridCellAttrProvider class API changed, you will need to update your code
 | ||
|   if you derived any classes from it
 | ||
| 
 | ||
| - wxImage::ComputeHistogram()'s signature changed to
 | ||
|   unsigned long ComputeHistogram(wxImageHistogram&) const
 | ||
| 
 | ||
| - wxEvtHandler cannot be copied/assigned any longer - this never worked but
 | ||
|   now it results in compile-time error instead of run-time crashes
 | ||
| 
 | ||
| - WXK_NUMLOCK and WXK_SCROLL keys no longer result in EVT_CHAR() events,
 | ||
|   they only generate EVT_KEY_DOWN/UP() ones
 | ||
| 
 | ||
| - the dialogs use wxApp::GetTopWindow() as the parent implicitly if the
 | ||
|   parent specified is NULL, use wxDIALOG_NO_PARENT style to prevent this
 | ||
|   from happening
 | ||
| 
 | ||
| - several obsolete synonyms are only retained in WXWIN_COMPATIBILITY_2_2 mode:
 | ||
|   for example, use wxScrolledWindow::GetViewStart() now instead of ViewStart()
 | ||
|   and GetCount() instead of Number() in many classes
 | ||
| 
 | ||
| - wxCmdLineParser does not use wxLog to output messages anymore.
 | ||
|   to obtain the previous behaviour, add
 | ||
|   wxMessageOutput::Set(new wxMessageOutputLog); to your program
 | ||
|   (you will need to #include <wx/msgout.h>)
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| ! build system changed: setup.h is not a static file in include/wx any more
 | ||
|   but is created as part of the build process under lib/<toolkit>/wx
 | ||
|   where <toolkit> is of the form (msw|univ)[dll][u][d]. You'll need to update
 | ||
|   the include path in your make/project files appropriately. Furthermore,
 | ||
|   xpm.lib is no longer used by wxMSW, it was superseded by the wxXPMDecoder
 | ||
|   class. You'll need to remove all references to xpm.lib from your
 | ||
|   make/project files. Finally, the library names have changed as well and now
 | ||
|   use the following consistent naming convention: wxmsw[ver][u][d].(lib|dll)
 | ||
|   where 'u' appears for Unicode version, 'd' -- for the debug one and version
 | ||
|   is only present for the DLLs builds.
 | ||
| 
 | ||
| - child frames appear in the taskbar by default now, use wxFRAME_NO_TASKBAR
 | ||
|   style to avoid it
 | ||
| 
 | ||
| - all overloads of wxDC::SetClippingRegion() combine the given region with the
 | ||
|   previously selected one instead of replacing it
 | ||
| 
 | ||
| - wxGetHomeDir() uses HOME environment variable and if it is set will not
 | ||
|   return the programs directory any longer but its value (this function has
 | ||
|   never been meant to return the programs directory anyhow)
 | ||
| 
 | ||
| - wxHTML apps don't need to include wx/html/msw/wxhtml.rc in resources file
 | ||
|   anymore. The file was removed from wxMSW
 | ||
| 
 | ||
| 
 | ||
| Unix ports:
 | ||
| 
 | ||
| ! You should use `wx-config --cxxflags` in your makefiles instead of
 | ||
|   `wx-config --cflags` for compiling C++ files. CXXFLAGS contains CFLAGS
 | ||
|   and the compiler flags for C++ files only, CFLAGS should still be used
 | ||
|   to compile pure C files.
 | ||
| 
 | ||
| 
 | ||
| wxThread and related classes:
 | ||
| 
 | ||
| - The thread-related classes have been heavily changed since 2.2.x versions
 | ||
|   as the old code had many serious problems. This could have resulted in
 | ||
|   semantical changes other than those mentioned here, please review use of
 | ||
|   wxThread, wxMutex and wxCondition classes in your code.
 | ||
| 
 | ||
| ! wxCondition now *must* be used with a mutex, please read the (updated) class
 | ||
|   documentation for details and revise your code accordingly: this change was
 | ||
|   unfortunately needed as it was impossible to ensure the correct behaviour
 | ||
|   (i.e. absense of race conditions) using the old API.
 | ||
| 
 | ||
| - wxMutex is not recursive any more in POSIX implementation (it hasn't been
 | ||
|   recursive in 2.2.x but was in 2.3.1 and 2.3.2), please refer to the class
 | ||
|   documentation for the discussion of the recursive mutexes.
 | ||
| 
 | ||
| - wxMutex::IsLocked() doesn't exist any more and should have never existed:
 | ||
|   this is was unique example of a thread-unsafe-by-design method.
 | ||
| 
 | ||
| 
 | ||
| OTHER CHANGES
 | ||
| =============
 | ||
| 
 | ||
| 2.4.0
 | ||
| -----
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - fixed loss of client data in wxChoice::SetString()
 | ||
| 
 | ||
| 2.3.4
 | ||
| -----
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - added (partial) Indonesian translations (Bambang Purnomosidi D. P.)
 | ||
| - added wxSizer::Show()/Hide() (Carl Godkin)
 | ||
| - fixed bugs in wxDateTime::SetToWeekDay()/GetWeek()
 | ||
| 
 | ||
| Unix (Base/GUI):
 | ||
| 
 | ||
| - minor OpenBSD compilation/linking fixes, now builds OOB under OpenBSD 3.1
 | ||
| - don't include -I/usr/include nor -I/usr/local/include in wx-config output
 | ||
| - shared library symbols are now versioned on platforms that support it (Linux)
 | ||
| 
 | ||
| wxGTK:
 | ||
| - Further work for GTK 2.0 and Unicode support.
 | ||
| - Addition of native frame site grip.
 | ||
| 
 | ||
| wxX11:
 | ||
| - Unicode support through Pango library.
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - fixed crashes in wxListCtrl under XP
 | ||
| - added context menu for rich edit wxTextCtrl
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - fixed wxHTML to work in Unicode build
 | ||
| 
 | ||
| 2.3.3
 | ||
| -----
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - building wxBase with Borland C++ is now supported (Michael Fieldings)
 | ||
| - wxSemaphore class added, many fixed to wxCondition and wxThread (K.S. Sreeram)
 | ||
| - fixes to the command line parsing error and usage messages
 | ||
| - modified wxFileName::CreateTempFileName() to open the file atomically
 | ||
|   (if possible) and, especially, not to leak the file descriptors under Unix
 | ||
| - memory leak in wxHTTP fixed (Dimitri Schoolwerth)
 | ||
| - fixes to AM_PATH_WXCONFIG autoconf macro
 | ||
| - added wxHashMap class that replaces type-unsafe wxHashTable and is modelled
 | ||
|   after (non standard) STL hash_map
 | ||
| - wxLocale now works in Unicode mode
 | ||
| - wxLocale can now load message catalogs in arbitrary encoding
 | ||
| - added wxShutdown() function (Marco Cavallini)
 | ||
| - added wxEXPLICIT macro
 | ||
| - IPC classes improved and memory leaks fixed (Michael Fielding).
 | ||
|   Global buffer removed, duplication in docs removed
 | ||
| - debug new/free implementations made thread-safe
 | ||
| 
 | ||
| Unix (Base/GUI):
 | ||
| 
 | ||
| - wxWidgets may be built using BSD and Solaris (and possibly other) make
 | ||
|   programs and not only GNU make
 | ||
| - wxTCP-based IPC classes now support communicating over Unix domain sockets
 | ||
| - wxWidgets may be built as a dynamic shared library under Darwin / Mac OS X
 | ||
|   lazy linking issues have been solved by linking a single module (.o) into
 | ||
|   the shared library (two step link using distrib/mac/shared-ld-sh)
 | ||
| - fixed thread priority setting under Linux
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - it is now possible to set the icons of different sizes for frames (e.g. a
 | ||
|   small and big ones) using the new wxIconBundle class
 | ||
| - implemented radio menu items and radio toolbar buttons
 | ||
| - added possibility to show text in the toolbar buttons
 | ||
| - added wxArtProvider class that can be used to customize the look of standard
 | ||
|   wxWidgets dialogs
 | ||
| - significantly improved native font support
 | ||
| - wxImage::ComputeHistogram() now uses wxImageHistogram instead of type-unsafe
 | ||
|   wxHashTable
 | ||
| - added IFF image handler
 | ||
| - fixed using custom renderers in wxGrid which was broken in 2.3.2
 | ||
| - support for multiple images in one file added to wxImage
 | ||
|   (TIFF, GIF and ICO formats)
 | ||
| - support for CUR and ANI files in wxImage added (Chris Elliott)
 | ||
| - wxTextCtrl::GetRange() added
 | ||
| - added wxGetFontFromUser() convenience function
 | ||
| - added EVT_MENU_OPEN and EVT_MENU_CLOSE events
 | ||
| - added Hungarian translations (Janos Vegh)
 | ||
| - added wxImage::SaveFile(filename) method (Chris Elliott)
 | ||
| - added wxImage::FloodFill and implemented wxWindowDC::DoFloodFill method
 | ||
|   for GTK+, Mac, MGL, X11, Motif ports (Chris Elliott)
 | ||
| - added (platform-dependent) scan code to wxKeyEvent (Bryce Denney)
 | ||
| - added wxTextCtrl::EmulateKeyPress()
 | ||
| - Added wxMouseCaptureChangedEvent
 | ||
| - Added custom character filtering to wxTextValidator
 | ||
| - wxTreeCtrl now supports incremental keyboard search
 | ||
| - wxMessageOutput class added
 | ||
| - wxHelpProvider::RemoveHelp added and called from ~wxWindowBase
 | ||
|   so that erroneous help strings are no longer found as the hash
 | ||
|   table fills up
 | ||
| - updated libpng from 1.0.3 to 1.2.4
 | ||
| - Added wxView::OnClosingDocument so the application can do cleanup.
 | ||
| - generic wxListCtrl renamed to wxGenericListCtrl, wxImageList
 | ||
|   renamed to wxGenericImageList, so they can be used on wxMSW
 | ||
|   (Rene Rivera).
 | ||
| - Added wxTreeEvent::IsEditCancelled so the application can tell
 | ||
|   whether a label edit was cancelled.
 | ||
| - added static wxFontMapper::Get() accessor
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - small appearance fixes for native look under Windows XP
 | ||
| - fixed the bug related to the redrawing on resize introduced in 2.3.2
 | ||
| - fixed multiple bugs in wxExecute() with IO redirection
 | ||
| - refresh the buttons properly when the window is resized (Hans Van Leemputten)
 | ||
| - huge (40*) speed up in wxMask::Create()
 | ||
| - changing wxWidgets styles also changes the underlying Windows window style
 | ||
| - wxTreeCtrl supports wxTR_HIDE_ROOT style (George Policello)
 | ||
| - fixed flicker in wxTreeCtrl::SetItemXXX()
 | ||
| - fixed redraw problems in dynamically resized wxStaticText
 | ||
| - improvements to wxWidgets applications behaviour when the system colours
 | ||
|   are changed
 | ||
| - choose implicit parent for the dialog boxes better
 | ||
| - fixed wxProgressDialog for ranges > 65535
 | ||
| - wxSpinButton and wxSpinCtrl now support full 32 bit range (if the version
 | ||
|   of comctl32.dll installed on the system supports it)
 | ||
| - wxFontEnumerator now returns all fonts, not only TrueType ones
 | ||
| - bugs in handling wxFrame styles (border/caption related) fixed
 | ||
| - showing a dialog from EVT_RADIOBUTTON handler doesn't lead to an infinite
 | ||
|   recursion any more
 | ||
| - wxTextCtrl with wxTE_RICH flag scrolls to the end when text is appended to it
 | ||
| - the separators are not seen behind the controls added to the toolbar any more
 | ||
| - wxLB_SORT style can be used with wxCheckListBox
 | ||
| - wxWindowDC and wxClientDC::GetSize() works correctly now
 | ||
| - Added wxTB_NODIVIDER and wxTB_NOALIGN so native toolbar can be used in FL
 | ||
| - Multiline labels in buttons are now supoprted (simply use "\n" in the label)
 | ||
| - Implemented wxMouseCaptureChangedEvent and made wxGenericDragImage check it
 | ||
|   has the capture before release it.
 | ||
| - fixed bugs in multiple selection wxCheckListBox
 | ||
| - default button handling is now closer to expected
 | ||
| - setting tooltips for wxSlider now works
 | ||
| - disabling a parent window also disables all of its children (as in wxGTK)
 | ||
| - multiple events avoided in wxComboBox
 | ||
| - tooltip asserts avoided for read-only wxComboBox
 | ||
| - fixed a race condition during a thread exit and a join
 | ||
| - fixed a condition where a thread can hang during message/event processing
 | ||
| - increased space between wxRadioBox label and first radio button
 | ||
| - don't fail to register remaining window classes if one fails to register
 | ||
| - wxFontDialog effects only turned on if a valid colour was
 | ||
|   provided in wxFontData
 | ||
| - Added wxTE_LEFT, wxTE_CENTRE and wxTE_RIGHT flags for text control alignment.
 | ||
| - Bitmap printing uses 24 bits now, not 8.
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - wxDirDialog now presents the file system in standard Unix way
 | ||
| - wxButton now honours wxBU_EXACTFIT
 | ||
| - wxStaticBox now honours wxALIGN_XXX styles
 | ||
| - added support for non alphanumeric simple character accelerators ('-', '=')
 | ||
| - 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)
 | ||
| - fixed wxDC::Blit() to honour source DC's logical coordinates
 | ||
| - implemented wxIdleEvent::RequestMore() for simple background tasks
 | ||
| - implemented wxChoice::Delete()
 | ||
| - fixed bad memory leak in wxFileDialog (Chris Elliott)
 | ||
| - made internal GC pool dynamically growable
 | ||
| - added GTK+ 2 and Unicode support
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - improved colour settings return values (Ian Brown)
 | ||
| - improved border style handling for wxStaticText (Ian Brown)
 | ||
| - improved toolbar control alignment
 | ||
| - implemented wxSpinButton
 | ||
| - implemented wxCheckListBox
 | ||
| - fixed wxSpinCtrl and wxStaticLine when used with sizers
 | ||
| - wxStaticBitmap now shows transparent icons correctly
 | ||
| 
 | ||
| wxX11:
 | ||
| 
 | ||
| - added generic MDI implementation (Hans Van Leemputten)
 | ||
| - first cut at wxSocket support (not yet working)
 | ||
| 
 | ||
| wxMac:
 | ||
| 
 | ||
| - Many improvements
 | ||
| 
 | ||
| wxOS2:
 | ||
| 
 | ||
| - First alpha-quality release
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - fixed wxHtmlHelpController's cache files handling on big endian machines
 | ||
| - added blocking and redirecting capabilities to wxHtmlWindow via
 | ||
|   wxHtmlWindow::OnOpeningURL()
 | ||
| - fixed alignment handling in tables
 | ||
| - fixed <font face="..."> handling to be case insensitive
 | ||
| 
 | ||
| 2.3.2
 | ||
| -----
 | ||
| 
 | ||
| New port: wxUniv for Win32/GTK+ is now included in the distribution.
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - wxRegEx class added
 | ||
| - wxGetDiskSpace() function added (Jonothan Farr, Markus Fieber)
 | ||
| - wxTextBuffer and wxTextFile(wxStream) added (Morten Hanssen)
 | ||
| - more fixes to wxMBConv classes. Conversion to and from wchar_t now works with
 | ||
|   glibc 2.2 as well as with glibc 2.1. Unix version now checks for iconv()'s
 | ||
|   capabilities at runtime instead of in the configure script.
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - support for virtual list control added
 | ||
| - column images in report mode of the list control
 | ||
| - wxFindReplaceDialog added (based on work of Markus Greither)
 | ||
| - wxTextCtrl::SetMaxLength() added (wxMSW/wxGTK)
 | ||
| - polygon support in wxRegion (Klaas Holwerda)
 | ||
| - wxStreamToTextRedirector to allow easily redirect cout to wxTextCtrl added
 | ||
| - fixed bug with using wxExecute() to capture huge amounts of output
 | ||
| - new wxCalendarCtrl styles added (S<>ren Erland Vest<73>)
 | ||
| - wxWizard changes: loading from WXR support, help button (Robert Cavanaugh)
 | ||
| - wxDirSelector() added (Paul A. Thiessen)
 | ||
| - wxGrid cell editing veto support (Roger Gammans)
 | ||
| - wxListCtrl ITEM_FOCUSED event added
 | ||
| - support for ICO files in wxImage added (Chris Elliott)
 | ||
| - improvements to wxDragImage (Chuck Messenger)
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - support for the DBCS fonts (CP 932, 936, 949, 950) (Nathan Cook)
 | ||
| - new library naming convention under VC++ -- please change your application
 | ||
|   project files
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - fixed popup menu positioning bug
 | ||
| - fixed the edit function for wxListCtrl (Chuck Messenger)
 | ||
| - fixed the key-hitting events for wxListCtrl and wxTreeCtrl, so they
 | ||
|   correctly return the key which was pressed (Chuck Messenger)
 | ||
| 
 | ||
| wxMac:
 | ||
| 
 | ||
| - support for configuration and build under Mac OS X using the Apple Developer
 | ||
|   Tools
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - new HTML parser with correct parsing of character entities and fixes
 | ||
|   to tags parsing
 | ||
| - added support for animated GIFs
 | ||
| 
 | ||
| 2.3.1
 | ||
| -----
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - Fixes for gcc 3.0
 | ||
| - Fixed new charset detection code
 | ||
| - ODBC Informix fixes (submitted by Roger Gammans)
 | ||
| - Added ODBC date support to wxVariant
 | ||
| - Added wxDir::Traverse
 | ||
| - Added wxSingleInstanceChecker class
 | ||
| - Removed redundant wxDebugContext functions using C++ streams,
 | ||
|   so now standard stream usage should be unnecessary
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - Added wxDbGrid class for displaying ODBC tables
 | ||
| - Added EVT_GRID_EDITOR_CREATED and wxGridEditorCreatedEvent so the
 | ||
|   user code can get access to the edit control when it is created, (to
 | ||
|   push on a custom event handler for example)
 | ||
| - Added wxTextAttr class and SetStyle, SetDefaultStyle and
 | ||
|   GetDefaultStyle methods to wxTextCtrl
 | ||
| - Added wxSingleInstanceChecker
 | ||
| - Improvements to Tex2RTF
 | ||
| - Added Paul and Roger Gammans' grid controls
 | ||
| - Bug in wxDocument::Save logic corrected, whereby Save didn't save when not
 | ||
|   first-time saved
 | ||
| - Fixed memory leak in textcmn.cpp
 | ||
| - Various wxXML enhancements
 | ||
| - Removed wxCLIP_CHILDREN style from wxSplitterWindow
 | ||
| - Fixed memory leak in DoPrint, htmprint.cpp
 | ||
| - Fixed calendar sample bug with using wxCommandEvent::GetInt()
 | ||
|   instead of GetId()
 | ||
| - Added wxDbGrid combining wxODBC classes with wxGrid
 | ||
| - Added more makefiles and project files for contrib hierarchy
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Fixed wxApp::ProcessMessage so controls don't lose their
 | ||
|   accelerators when the accelerators are redefined elsewhere
 | ||
| - Accelerators consisting of simple keystrokes (without control,
 | ||
|   alt or shift) now work
 | ||
| - Compile fixes for Watcom C++ added
 | ||
| - Compile fixes for Cygwin 1.0 added
 | ||
| - Use SetForegroundWindow() in wxWindow::Raise() instead of BringWindowToTop()
 | ||
| - Replaced wxYield() call in PopupMenu() by a much safer
 | ||
|   wxYieldForCommandsOnly() - fixes tree ctrl popup menu bug and other ones
 | ||
| - Enter processing in wxSpinCtrl fixed
 | ||
| - Fixed bug in determining the best listbox size
 | ||
| - Fix for wxFrame's last focus bug
 | ||
| - We now send iconize events
 | ||
| - Fixed wxFrame::SetClientSize() with toolbar bug
 | ||
| - Added mousewheel processing
 | ||
| - Added wxSystemSettings::Get/SetOption so we can configure
 | ||
|   wxWidgets at run time; used this to implement no-maskblt option
 | ||
|   in wxDC
 | ||
| - Fixed bug when using MDIS_ALLCHILDSTYLES style: so now MDI
 | ||
|   child frame styles are honoured
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - Fixed slider rounding bug
 | ||
| - Added code to set wxFont's default encoding to wxLocale::GetSystemEncoding()
 | ||
| - We now send iconize events
 | ||
| - Fix for discrepancies between wxNotebookEvent and wxNotebook
 | ||
|   GetSelection() results
 | ||
| 
 | ||
| 2.3.0
 | ||
| -----
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - fixed problem with wxURL when using static version of the library
 | ||
| - wxZipFSHandler::FindFirst() and FindNext() now correctly list directories
 | ||
| - wxMimeTypesManager now can create file associations too (Chris Elliott)
 | ||
| - wxCopyFile() respects the file permissions (Roland Scholz)
 | ||
| - wxFTP::GetFileSize() added (S<>ren Erland Vest<73>)
 | ||
| - wxDateTime::IsSameDate() bug fixed
 | ||
| - wxTimeSpan::Format() now behaves more as expected, see docs
 | ||
| - wxLocale now provides much more convenient API for setting language and
 | ||
|   detecting current system language. New API is more abstracted and truly
 | ||
|   cross-platform, independent of underlying C runtime library.
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - new wxToggleButton class (John Norris, Axel Schlueter)
 | ||
| - wxCalendarCtrl not highlighting the date with time part bug fixed
 | ||
| - wxADJUST_MINSIZE sizer flag added
 | ||
| - FindOrCreateBrush/Pen() bug fix for invalid colour values
 | ||
| - new wxXPMHandler for reading and writing XPM images
 | ||
| - added new (now recommended) API for conversion between wxImage and wxBitmap
 | ||
|   (wxBitmap::ConvertToImage() and wxBitmap::wxBitmap(wxImage&) instead of
 | ||
|   wxImage methods and ctor)
 | ||
| - ODBC classes now support DB2, Interbase, and Pervasive SQL
 | ||
| - ODBC documentation complete!!
 | ||
| - ODBC classes have much Unicode support added, but not complete
 | ||
| - ODBC experimental BLOB support added, but not completely tested
 | ||
| - ODBC NULL column support completed (Roger/Paul Gammans)
 | ||
| - ODBC All "char *" and char arrays removed and replaced with wxString use
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - threads: bug in wxCondition::Broadcast fixed (Pieter van der Meulen)
 | ||
| - fixed bug in MDI children flags (mis)handling
 | ||
| - it is possible to compile wxCHMHelpController with compilers
 | ||
|   other than Visual C++ now and hhctrl.ocx is loaded at runtime
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - added support for wchar_t (wxUSE_WCHAR_T) under Unix
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - mew feature, wxHtmlProcessor for on-the-fly modification of HTML markup
 | ||
| - visual enhancements to contents panel of wxHtmlHelpController
 | ||
| 
 | ||
| 2.2.0
 | ||
| -----
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - Fixed bug with directories with trailing (back)slashes in wxPathExists
 | ||
| - wxString: added wxArrayString::operator==() and !=()
 | ||
| - Fixes for wxCmdLineParser
 | ||
| - Added wxGetLocalTimeMillis
 | ||
| - Completed Czech translations
 | ||
| - Some stream corrections
 | ||
| - added missing consts to wxPoint operators
 | ||
| - wxDateTime ParseFormat fixes
 | ||
| - wxFile::Open(write_append) will create file if it doesn't exist
 | ||
| - small fixes to MIME mailcap test command handling, more MIME tests in the sample
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| - wxGenericDragImage now allows virtual image drawing, and
 | ||
|   flicker-free dragging is now possible
 | ||
| - Added wxPrinter::GetLastError
 | ||
| - Fixed wxLogGui reentrancy problem
 | ||
| - Paper names now translated
 | ||
| - wxGrid fixes
 | ||
| - Generic validator now caters for more cases (integers in
 | ||
|   wxTextCtrl, strings in wxChoice, wxComboBox)
 | ||
| - Fixed crash when docview On... functions return FALSE. Show
 | ||
|   error message when an non-existent filename is typed into the Open
 | ||
|   File dialog.
 | ||
| - Corrected Baltic font encoding handling
 | ||
| - wxImage: enhanced TIFF code, added new platform-independent BMP
 | ||
|   writing code
 | ||
| - wxKeyEvent::GetKeyCode() and HasModifiers() added and documented
 | ||
| - Fixed wxPropertyForm crashes in sample
 | ||
| - wxWizard now calls TransferDataFromWindow() before calling
 | ||
|   wxWizardPage::GetNext() fixing an obvious bug
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxWindow::GetCharWidth/Height now calculated accurately.
 | ||
|   This will affect all .wxr dialog resources, so for
 | ||
|   backward compatibility, please set
 | ||
|   wxDIALOG_UNIT_COMPATIBILITY to 1 in setup.h
 | ||
| - wxListCtrl: set item text in LIST_ITEM_ACTIVATED events
 | ||
| - wxTextCtrl: implemented setting colours for rich edit controls
 | ||
| - wxColour now accepts both grey and gray
 | ||
| - BC++ DLL compilation fixed
 | ||
| - Watcom C++ makefiles improved for JPEG and TIFF compilation
 | ||
| - Fixed submenu accelerator bug
 | ||
| - Fixed dialog focus bug (crash if the previous window to have
 | ||
|   the focus was destroyed before the dialog closed)
 | ||
| - Too-small default wxTextCtrl height fixed
 | ||
| - fixed "missing" initial resize of wxMDIChildFrame
 | ||
| - wxFrame restores focus better
 | ||
| - Now ignore wxTHICK_FRAME in wxWindow constructor: only relevant to
 | ||
|   frames and dialogs, interferes with other window styles otherwise
 | ||
|   (sometimes you'd get a thick frame in a subwindow)
 | ||
| - wxTextCtrl insertion point set to the beginning of the control by SetValue
 | ||
| - Fix so wxMDIParentFrame is actually shown when Show(TRUE) is called.
 | ||
| - wxFileDialog: adjusts struct size if there's an error (struct
 | ||
|   sizes can be different on different versions of Windows)
 | ||
| - wxImageList::GetSize() documented and added to wxMSW
 | ||
| - fixed default dialog style to make them non resizeable again
 | ||
| - fixed wxFrame::IsShown() which always returned TRUE before
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - Please see docs/gtk/changes.txt.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Small compilation fixes
 | ||
| 
 | ||
| Documentation:
 | ||
| 
 | ||
| - wxCaret documented
 | ||
| 
 | ||
| 2.1.16
 | ||
| ------
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| All (GUI):
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Various bug fixes
 | ||
| - Added wxCHMHelpController, for invoking MS HTML Help
 | ||
|   files. This works under VC++ only
 | ||
| - Modal dialog handling improved
 | ||
| - Printer dialog now modal
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - Various bug fixes
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Various bug fixes
 | ||
| 
 | ||
| 2.1.15
 | ||
| ------
 | ||
| 
 | ||
| Documentation:
 | ||
| 
 | ||
| - Added docs/tech for technical notes
 | ||
| 
 | ||
| File hierarchy:
 | ||
| 
 | ||
| - Started new contrib hierarchy that mirrors
 | ||
|   the main lib structure; moved OGL and MMedia into it
 | ||
| 
 | ||
| wxBase:
 | ||
| 
 | ||
| - wxSocket support
 | ||
| - wxDateTime replaces and extends old wxDate and wxTime classes (still
 | ||
|   available but strongly deprecated) with many new features
 | ||
| - wxLongLong class provides support for (signed) 64 bit integers
 | ||
| - wxCmdLineParser class for parsing the command line (supporting short and
 | ||
|   long options, switches and parameters of different types)
 | ||
| - it is now possible to build wxBase under Win32 (using VC++ only so far)
 | ||
|   and BeOS (without thread support yet)
 | ||
| - wxThread class modified to support both detached and joinable threads, also
 | ||
|   added new GetCPUCount() and SetConcurrency() functions (useful under Solaris
 | ||
|   only so far)
 | ||
| - wxDir class for enumerating files in a directory
 | ||
| - wxLog functions are now (more) MT-safe
 | ||
| - wxStopWatch class, timer functions have more chances to return correct
 | ||
|   results for your platform (use ANSI functions where available)
 | ||
| - wxString::ToLong, ToULong, ToDouble methods and Format() static one added
 | ||
| - buffer overflows in wxString and wxLog classes fixed (if snprintf() function
 | ||
|   is available)
 | ||
| - wxArray::RemoveAt() replaces deprecated wxArray::Remove(index)
 | ||
| 
 | ||
| all (GUI):
 | ||
| 
 | ||
| - Added wxImage::Rotate.
 | ||
| - new wxCalendarCtrl class for picking a date interactively
 | ||
| - wxMenu(Bar)::Insert() and Remove() functions for dynamic menu management
 | ||
| - wxToolBar supports arbitrary controls (not only buttons) and can be
 | ||
|   dynamically changed (Delete/Insert functions)
 | ||
| - vertical toolbars supported by MSW and GTK native wxToolBar classes
 | ||
| - wxTreeCtrl and wxListCtrl allow setting colour/fonts for individual items
 | ||
| - "file open" dialog allows selecting multiple files at once (contributed by
 | ||
|   John Norris)
 | ||
| - wxMimeTypesManager uses GNOME/KDE MIME database to get the icons for the
 | ||
|   MIME types if available (Unix only)
 | ||
| - wxDC::DrawRotatedText() (based on contribution by Hans-Joachim Baader)
 | ||
| - TIFF support added (libtiff required and included in the distribution)
 | ||
| - PCX files can now be written (256 and 24 bits)
 | ||
| - validators may work recursively if wxWS_EX_VALIDATE_RECURSIVELY is set
 | ||
| - wxScrolledWindow now has keyboard interface
 | ||
| - wxTextEntryDialog may be used for entering passwords (supports wxTE_PASSWORD)
 | ||
| - added wxEncodingConverter and improved wxFontMapper
 | ||
|   for dealing with conversions between different encodings,
 | ||
|   charsets support in wxLocale and wxHTML
 | ||
| - wxDragImage class added
 | ||
| - samples/help improved to show standard and advanced HTML help
 | ||
|   controllers, as well as native help
 | ||
| - moved wxTreeLayout class to main lib
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxFrame::MakeFullScreen added.
 | ||
| - support for enhanced metafiles added, support for copying/pasting metafiles
 | ||
|   (WMF and enhanced ones) fixed/added.
 | ||
| - implemented setting colours for push buttons
 | ||
| - wxStatusBar95 may be now used in dialogs, panels (not only frames) and can be
 | ||
|    positioned along the top of the screen and not only at the bottom
 | ||
| - wxTreeCtrl::IsVisible() bug fixed (thanks to Gary Chessun)
 | ||
| - loading/saving big (> 32K) files in wxTextCtrl works
 | ||
| - tooltips work with wxRadioBox
 | ||
| - wxBitmap/wxIcon may be constructed from XPM included into a program, as in
 | ||
|   Unix ports
 | ||
| - returning FALSE from OnPrintPage() aborts printing
 | ||
| - VC++ makefiles and project files made (mostly) consistent
 | ||
| - wxSetCursorEvent added
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - wxFontMapper endless recursion bug (on some systems) fixed
 | ||
| - wxGTK synthesizes wxActivateEvents
 | ||
| - UpdateUI handlers may be used with wxTextCtrl
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - wxMenu::Enable works
 | ||
| - wxToolBar bugs fixed
 | ||
| - OGL samples made to work again
 | ||
| 
 | ||
| wxHTML:
 | ||
| 
 | ||
| - almost complete rewrite of wxHtmlHelpController,
 | ||
|   including faster search, bookmarks, printing, setup dialog
 | ||
|   and cross-platform binary compatible .cached files for faster
 | ||
|   loading of large helpbooks, case insensitive search
 | ||
|   split into 3 parts: wxHtmlHelpData, Frame and Controller
 | ||
| - added support for charsets and <meta> tag
 | ||
| - added support for font faces and justified paragraphs,
 | ||
|   taken some steps to prepare wxHTML for frames
 | ||
| - added dynamic pushing/popping of wxHtmlParser tag handlers
 | ||
| - improved HTML printing
 | ||
| - added extensive table of HTML characters substitutions (  etc.)
 | ||
| - fixed wxHtmlWindow flickering, several minor bugfixes
 | ||
| - added some tags: <address>, <code>, <kbd>, <samp>, <small>, <big>,
 | ||
|   fixed handling of relative and absolute font sizes in <font size>
 | ||
| 
 | ||
| 
 | ||
| NOTE: for changes after wxWidgets 2.1.0 b4, please see the CVS
 | ||
| change log.
 | ||
| 
 | ||
| 2.1.0, b4, May 9th 1999
 | ||
| -----------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - JPEG support added.
 | ||
| - Many fixes and changes not thought worth mentioning in this file :-)
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxNotebook changes: can add image only; wxNB_FIXEDWIDTH added;
 | ||
|   SetTabSize added.
 | ||
| - JPEG support added.
 | ||
| - Fixes for Cygwin compilation.
 | ||
| - Added wxGA_SMOOTH and wxFRAME_FLOAT_ON_PARENT styles.
 | ||
| - Many fixes people didn't tell this file about.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| 
 | ||
| General:
 | ||
| 
 | ||
| - Some changes for Unicode support, including wxchar.h/cpp.
 | ||
| 
 | ||
| 
 | ||
| 2.0.1 (release), March 1st 1999
 | ||
| -------------------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - wxGLCanvas fixes.
 | ||
| - Slider/spinbutton fixes.
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Fixed problems with <return> in dialogs/panels.
 | ||
| - Fixed window cursor setting.
 | ||
| - Fixed toolbar sizing and edge-clipping problems.
 | ||
| - Some makefile fixes.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - None.
 | ||
| 
 | ||
| General:
 | ||
| 
 | ||
| - Added wxUSE_SOCKETS.
 | ||
| - More topic overviews.
 | ||
| - Put wxPrintPaperType, wxPrintPaperDatabase into
 | ||
|   prntbase.h/cpp for use in non-PostScript situations
 | ||
|   (e.g. Win16 wxPageSetupDialog).
 | ||
| 
 | ||
| 
 | ||
| Beta 5, February 18th 1999
 | ||
| --------------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - wxExecute improved.
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Fixed wxWindow::IsShown (::IsWindowVisible doesn't behave as
 | ||
|   expected).
 | ||
| - Changed VC++ makefiles (.vc) so that it's possible to have
 | ||
|   debug/release/DLL versions of the library available simultaneously,
 | ||
|   with names wx.lib, wx_d.lib, wx200.lib(dll), wx200_d.lib(dll).
 | ||
| - Added BC++ 5 IDE files and instructions.
 | ||
| - Fixed wxChoice, wxComboBox constructor bugs (m_noStrings initialisation).
 | ||
| - Fixed focus-related crash.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Cured asynchronous wxExecute crash.
 | ||
| - Added repaint event handlers to wxFrame, wxMDIChildFrame.
 | ||
| 
 | ||
| General:
 | ||
| 
 | ||
| - wxLocale documented.
 | ||
| - Added include filenames to class reference.
 | ||
| - wxHelpController API changed: SetBrowser becomes SetViewer,
 | ||
|   DisplaySection works for WinHelp, help sample compiles under Windows
 | ||
|   (though doesn't display help yet).
 | ||
| 
 | ||
| Beta 4, February 12th 1999
 | ||
| --------------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - Miscellaneous fixes.
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Makefiles for more compilers and samples; Cygwin makefiles
 | ||
|   rationalised.
 | ||
| - Added VC++ project file for compiling wxWidgets as DLL.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Added OnEraseBackground invocation.
 | ||
| - Added wxRETAINED implementation for wxScrolledWindow.
 | ||
| - Cured scrolling display problem by adding XmUpdateDisplay.
 | ||
| - Tried to make lex-ing in the makefile more generic (command line
 | ||
|   syntax should apply to both lex and flex).
 | ||
| - Changed file selector colours for consistency (except for buttons:
 | ||
|   crashes for some reason).
 | ||
| - Fixed wxMotif version of wxImage::ConvertToBitmap (used new instead
 | ||
|   of malloc, which causes memory problems).
 | ||
| 
 | ||
| General:
 | ||
| 
 | ||
| - Further doc improvements.
 | ||
| - wxGenericValidator added.
 | ||
| - Added wxImageModule to image.cpp, so adds/cleans up standard handlers
 | ||
|   automatically.
 | ||
| 
 | ||
| Beta 3, January 31st 1999
 | ||
| -------------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - wxClipboard/DnD API changes (still in progress).
 | ||
| - wxToolTip class added.
 | ||
| - Miscellaneous fixes.
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxRegConfig DeleteAll bug fixed.
 | ||
| - Makefiles for more compilers.
 | ||
| - TWIN32 support added.
 | ||
| - Renamed VC++ makefiles from .nt to .vc, and
 | ||
|   factored out program/library settings.
 | ||
| - Fixed wxIniConfig bug.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - A few more colour fixes.
 | ||
| - wxGLCanvas and OpenGL samples working.
 | ||
| - Some compiler warnings fixed.
 | ||
| - wxChoice crash fix.
 | ||
| - Dialog Editor starting to work on Motif.
 | ||
| 
 | ||
| General:
 | ||
| 
 | ||
| - wxBusyCursor class added.
 | ||
| - Added samples/dde.
 | ||
| - More doc improvements, incl. expanding docs/html/index.htm.
 | ||
| 
 | ||
| Beta 2, January 1999
 | ||
| --------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - 16-bit BC++ compilation/linking works albeit without the resource system.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Cured wxScreenDC origin problem so e.g. sash window sash is drawn at
 | ||
|   the right place.
 | ||
| - Cured some widget table clashes.
 | ||
| - Added thread support (Robert).
 | ||
| - wxPoem sample now works.
 | ||
| 
 | ||
| General:
 | ||
| 
 | ||
| - Rearranged documentation a bit.
 | ||
| - Sash window uses area of first frame/dialog to paint over when drawing
 | ||
|   the dragged sash, not just the sash window itself (it clipped to the right
 | ||
|   or below).
 | ||
| - Made resource sample use the correct Cancel button id.
 | ||
| - Moved wxProp to main library (generic directory), created proplist
 | ||
|   sample.
 | ||
| - Added bombs and fractal samples.
 | ||
| 
 | ||
| Beta 1, December 24th 1998
 | ||
| --------------------------
 | ||
| 
 | ||
| wxGTK:
 | ||
| 
 | ||
| - Various
 | ||
| 
 | ||
| wxMSW, wxMotif: not in sync with this release.
 | ||
| 
 | ||
| 
 | ||
| Alpha 18, December 29th 1998
 | ||
| ----------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Win16 support working again (VC++ 1.5)
 | ||
| - Win16 now uses generic wxNotebook, wxListCtrl,
 | ||
|   wxTreeCtrl -- more or less working now, although
 | ||
|   a little work on wxNotebook is still needed.
 | ||
|   Under 16-bit Windows, get assertion when you click
 | ||
|   on a tab.
 | ||
| - Wrote 16-bit BC++ makefiles: samples don't yet link.
 | ||
| - Added CodeWarrior support to distribution courtesy
 | ||
|   of Stefan Csomor.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Cured scrolling problem: scrollbars now show/hide themselves
 | ||
|   without (permanently) resizing the window.
 | ||
| - Removed some commented-out lines in wxScrolledWindow::AdjustScrollbars
 | ||
|   that disabled scrollbar paging.
 | ||
| - Set background colour of drawing area in wxWindow, so e.g. wxListCtrl
 | ||
|   colours correctly.
 | ||
| - Removed major bug whereby dialogs were unmanaged automatically
 | ||
|   when any button was pressed.
 | ||
| - Fixed colours of wxWindow scrollbars, made list and text controls
 | ||
|   have a white background.
 | ||
| - Fixed dialog colour setting.
 | ||
| - Added settable fonts and colours for wxMenu/wxMenuBar. Now
 | ||
|   they have sensible colours by default.
 | ||
| - Fixed a bug in wxStaticBox.
 | ||
| - Cured wxTreeCtrl bug: now works pretty well!
 | ||
| - Debugged DrawEllipticArc (a ! in the wrong place).
 | ||
| - Added SetClippingRegion( const wxRegion& region ).
 | ||
| - Added wxPoint, wxSize, wxRect versions of SetSize etc.
 | ||
| 
 | ||
| Alpha 17, November 22nd 1998
 | ||
| ----------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - More documentation updates, especially for
 | ||
|   wxLayoutWindow classes and debugging facilities.
 | ||
| - Changed wxDebugContext to use wxDebugLog instead
 | ||
|   of wxTrace.
 | ||
| - Now supports VC++ 6.0, and hopefully BC++ 5.0.
 | ||
|   However, DLL support may be broken for BC++ since
 | ||
|   VC++ 6 required changing of WXDLLEXPORT keyword
 | ||
|   position.
 | ||
| - Numerous miscellaneous changes.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - Reimplemented MDI using wxNotebook instead of the MDI widgets, which
 | ||
|   were too buggy (probably not design for dynamic addition/removal of
 | ||
|   child frames).
 | ||
| - Some improvements to the wxNotebook implementation.
 | ||
| - wxToolBar now uses a bulletin board instead of a form, in an attempt
 | ||
|   to make it possible to add ordinary wxControls to a toolbar.
 | ||
| - Cured problem with not being able to use global memory operators,
 | ||
|   by defining two more global operators, so that the delete will match
 | ||
|   the debugging implementation.
 | ||
| - Added wxUSE_DEBUG_NEW_ALWAYS so we can distinguish between using
 | ||
|   global memory operators (usually OK) and #defining new to be
 | ||
|   WXDEBUG_NEW (sometimes it might not be OK).
 | ||
| - Added time.cpp to makefile; set wxUSE_DATETIME to 1.
 | ||
| - Added a parent-existence check to popup menu code to make it not crash.
 | ||
| - Added some optimization in wxWindow::SetSize to produce less flicker.
 | ||
|   It remains to be seen whether this produces any resize bugs.
 | ||
| 
 | ||
| It's a long time since I updated this file. Previously done:
 | ||
| 
 | ||
| - wxFrame, wxDialog done.
 | ||
| - wxScrolledWindow done (but backing pixmap not used at present).
 | ||
| - wxBitmap done though could be tidied it up at some point.
 | ||
| - Most basic controls are there, if not rigorously tested.
 | ||
| - Some MDI support (menus appear on child frames at present).
 | ||
| - wxNotebook almost done.
 | ||
| - wxToolBar done (horizontal only, which would be easy to extend
 | ||
|   to vertical toolbars).
 | ||
| 
 | ||
| More recently:
 | ||
| 
 | ||
| - Colour and font changing done (question mark over what happens
 | ||
|   to scrollbars).
 | ||
| - Accelerators done (for menu items and buttons). Also event loop
 | ||
|   tidied up in wxApp so that events are filtered through ProcessXEvent.
 | ||
| - wxWindow::GetUpdateRegion should now work.
 | ||
| 
 | ||
| Alpha 16, September 8th 1998
 | ||
| ----------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Added wxSashWindow, wxSashLayoutWindow classes, and sashtest
 | ||
|   sample.
 | ||
| - Guilhem's socket classes added, plus wxsocket sample.
 | ||
| - A few more makefiles added.
 | ||
| - GnuWin32/BC++ compatibility mods.
 | ||
| - Further doc updates.
 | ||
| - wxProp updates for correct working with wxGTK.
 | ||
| 
 | ||
| wxMotif:
 | ||
| 
 | ||
| - First start at Motif port.
 | ||
| - Made makefiles for wxMotif source directory and minimal sample.
 | ||
| - First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont,
 | ||
|   wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText,
 | ||
|   wxMenu, wxMenuItem, wxMenuBar
 | ||
| 
 | ||
| Alpha 15, August 31st 1998
 | ||
| --------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - wxBitmap debugged.
 | ||
| - wxDC::GetDepth added.
 | ||
| - Contribution added whereby wxBitmap will be
 | ||
|   converted to DC depth if they don't match.
 | ||
| - wxConfig API improved, documentation updated.
 | ||
| - Printing classes name conventions cleaned up.
 | ||
| - wxUpdateUIEvent now derives from wxCommandEvent
 | ||
|   so event can travel up the window hierarchy.
 | ||
| 
 | ||
| Alpha 14, July 31st 1998
 | ||
| ------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Toolbar API has been simplified, and now
 | ||
|   wxFrame::GetClientArea returns the available client
 | ||
|   area when toolbar, status bar etc. have been accounted for.
 | ||
|   wxFrame::CreateToolBar added in line with CreateStatusBar.
 | ||
| - Documentation updates, incl. for wxToolBar.
 | ||
| - New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable.
 | ||
| - Various additions from other folk, e.g. streams, wxConfig
 | ||
|   changes, wxNotebook.
 | ||
| - Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view.
 | ||
| 
 | ||
| Alpha 13, July 8th 1998
 | ||
| -----------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Implemented wxPoint as identical to POINT on Windows, and
 | ||
|   altered wxDC wxPoint functions to use wxPoint directly in
 | ||
|   Windows functions, for efficiency.
 | ||
| - Cured wxASSERT bug in wxStatusBar95.
 | ||
| - #ifdefed out some bits in oleutils.cpp for compilers that
 | ||
|   don't support it.
 | ||
| - Added some operators to wxPoint, wxSize.
 | ||
| - Added inline wxDC functions using wxPoint, wxSize, wxRect.
 | ||
| 
 | ||
| Alpha 12, July 7th 1998
 | ||
| -----------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can
 | ||
|   have flat toolbars on Win98 or Win95 with IE >= 3 installed.
 | ||
| 
 | ||
| Alpha 11, July 3rd 1998
 | ||
| -----------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Added thread.h, thread.cpp.
 | ||
| - Changed Enabled, Checked to IsEnabled, IsChecked in wxMenu,
 | ||
|   wxMenuBar.
 | ||
| - Changed wxMenuItem::SetBackColor to SetBackgroundColour,
 | ||
|   SetTextColor to SetTextColour, and added or made public several
 | ||
|   wxMenuItem accessors.
 | ||
| - Added two overloads to wxRegion::Contains. Added
 | ||
|   wxRegion::IsEmpty for a more consistent naming convention.
 | ||
| - Added Vadim's wxDataObject and wxDropSource.
 | ||
| - ENTER/LEAVE events now work.
 | ||
| - Cured wxMemoryDC bug where the DC wasn't being deleted.
 | ||
| - Cured wxGauge SetSize major bugginess.
 | ||
| - Cured problem where if a GDI object was created on the stack,
 | ||
|   then went out of scope, then another object was selected into
 | ||
|   the DC, GDI objects would leak. This is because the assignment
 | ||
|   to e.g. wxDC::m_pen would delete the GDI object without it first
 | ||
|   being selected out of the DC. Cured by selecting the old DC object
 | ||
|   first, then doing the assignment.
 | ||
| - Split up wxGaugeMSW, wxGauge95, wxSliderMSW, wxSlider95
 | ||
| - Various other bug fixes and additions.
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| - Major work on Dialog Editor (still plenty to go).
 | ||
| - Expanded documentation a bit more.
 | ||
| 
 | ||
| Alpha 10, May 7th 1998
 | ||
| ----------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Added desiredWidth, desiredHeight parameters to wxBitmapHandler
 | ||
|   and wxIcon functions so that you can specify what size of
 | ||
|   icon should be loaded. Probably will remain a Windows-specific thing.
 | ||
| - wxStatusBar95 now works for MDI frames.
 | ||
| - Toolbars in MDI frames now behave normally. They still
 | ||
|   require application-supplied positioning code though.
 | ||
| - Changed installation instructions, makefiles and batch files
 | ||
|   for compiling with Gnu-Win32/Mingw32/EGCS. Also timercmn.cpp
 | ||
|   change to support Mingw32/EGCS. Bison now used by default.
 | ||
| 
 | ||
| Alpha 9, April 27th 1998
 | ||
| ------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Cured bug in wxStatusBar95 that caused a crash if multiple
 | ||
|   fields were used.
 | ||
| - Added Gnu-Win32 b19/Mingw32 support by changing resource
 | ||
|   compilation and pragmas.
 | ||
| - Cured wxMenu bug introduced in alpha 8 - didn't respond to
 | ||
|   commands because VZ changed the id setting in wxMenu::MSWCommand.
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| - Corrected some bugs, such as the wxModule compilation problem.
 | ||
| - Added Gnu-Win32 b19/Mingw32 support by changing resource
 | ||
|   compilation and pragmas.
 | ||
| - Changed SIZEOF to WXSIZEOF.
 | ||
| 
 | ||
| Alpha 8, April 17th 1998
 | ||
| ------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Added IsNull to wxGDIObject to check if the ref data is present or not.
 | ||
| - Added PNG handler and sample - doesn't work for 16-bit PNGs for
 | ||
|   some reason :-(
 | ||
| - Added wxJoystick class and event handling, and simple demo.
 | ||
| - Added simple wxWave class. Needs Stop() function.
 | ||
| - Added wxModule (module.h/module.cpp) to allow definition
 | ||
|   of modules to be initialized and cleaned up on wxWidgets
 | ||
|   startup/exit.
 | ||
| - Start of Mingw32 compatibility (see minimal and dialogs samples
 | ||
|   makefile.m95 files, and install.txt).
 | ||
| - Note: Windows printing has stopped working... will investigate.
 | ||
| VADIM'S CHANGES:
 | ||
| - Updated wxString: bug fixes, added wxArrayString, some
 | ||
|   compatibility functions.
 | ||
| - Updated log.h/cpp, added wxApp::CreateLogTarget.
 | ||
| - file.h: new wxTempFile class.
 | ||
| - defs.h: added wxSB_SIZE_GRIP for wxStatusBar95
 | ||
| - statbr95: wxStatusBar95 control.
 | ||
| - registry.h/cpp: wxRegKey class for Win95 registry.
 | ||
| - listbox.cpp: corrected some bugs with owner-drawn listboxes.
 | ||
| - wxConfig and wxFileConfig classes.
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| - Added src/other/png, src/other/zlib directories.
 | ||
| - Added samples/png.
 | ||
| - IMPORTANT: Changed 'no id' number from 0 to -1, in wxEVT_ macros.
 | ||
|   Porters, please check particularly your wxTreeCtrl and wxListCtrl
 | ||
|   header files.
 | ||
| - Added modules.h/cpp, config.cpp, fileconf.cpp, textfile.cpp/h.
 | ||
| 
 | ||
| Alpha 7, March 30th 1998
 | ||
| ------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Added tab classes, tab sample.
 | ||
| - Now can return FALSE from OnInit and windows will be
 | ||
|   cleaned up properly before exit.
 | ||
| - Improved border handling so panels don't get borders
 | ||
|   automatically.
 | ||
| - Debugged MDI activation from Window menu.
 | ||
| - Changes to memory debug handling, including checking for
 | ||
|   memory leaks on application exit - but see issues.txt for
 | ||
|   unresolved issues.
 | ||
| - Added wxTaskBarIcon (taskbar.cpp/h, plus samples/taskbar)
 | ||
|   to allow maintenance of an icon in the Windows 95 taskbar
 | ||
|   tray area.
 | ||
| - Got MFC sample working (MFC and wxWidgets in the same
 | ||
|   application), partly by tweaking ntwxwin.mak settings.
 | ||
| - Got DLL compilation working again (VC++).
 | ||
| - Changed wxProp/Dialog Editor filenames.
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| - Added tab classes, tab sample.
 | ||
| - Revised memory.cpp, memory.h slightly; memory.h now #defines
 | ||
|   new to WXDEBUG_NEW in DEBUG mode. Windows implementation app.cpp
 | ||
|   now checks for leaks on exit. Added memcheck sample.
 | ||
|   See src/msw/issues.txt for more details.
 | ||
| - resource.h, resource.cpp changed to make wxDefaultResourceTable
 | ||
|   a pointer. Now initialize resource system with
 | ||
|   wxInitializeResourceSystem and wxCleanUpResourceSystem, to
 | ||
|   allow better control of memory.
 | ||
| - wxString now derives from wxObject, to enable memory leak
 | ||
|   checking.
 | ||
| - Added some #include fixes in various files, plus changed
 | ||
|   float to long in wxToolBar files.
 | ||
| 
 | ||
| Alpha 6, March 10th 1998
 | ||
| ------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - Found stack error bug - stopped unwanted OnIdle recursion.
 | ||
| - Removed bug in wxTreeCtrl::InsertItem I added in alpha 5.
 | ||
| - Changed exit behaviour in wxApp/wxFrame/wxDialog. Now will
 | ||
|   check if the number of top-level windows is zero before
 | ||
|   exiting. Also, wxApp::GetTopWindow will return either
 | ||
|   m_topWindow or the first member of wxTopLevelWindows, so you
 | ||
|   don't have to call wxApp::SetTopWindow.
 | ||
| - Added dynarray.h/dynarray.cpp (from Vadim).
 | ||
| - Added first cut at OLE drag and drop (from Vadim). dnd sample
 | ||
|   added. Drop target only at this stage. See src/msw/ole/*.cpp,
 | ||
|   wx/include/msw/ole/*.h. WIN32 only because of UUID usage.
 | ||
|   Doesn't work with GnuWin32 - no appropriate headers e.g. for
 | ||
|   IUnknown.
 | ||
|   Doesn't work with BC++ either - crashes on program startup.
 | ||
| - Added Vadim's owner-draw modifications - will probably remain
 | ||
|   Windows-only. This enhances wxMenu, wxListBox. See ownerdrw sample.
 | ||
| - Added wxLB_OWNERDRAW for owner-draw listboxes.
 | ||
| - Vadim's wxCheckListBox derives from wxListBox. See checklst sample.
 | ||
|   Doesn't entirely work for WIN16.
 | ||
| - Vadim has added wxMenuItem as a separate file menuitem.cpp. It
 | ||
|   can also be used as an argument to wxMenu::Append, not just for
 | ||
|   internal implementation.
 | ||
| - Some #ifdefs done for MINGW32 compilation (just alter OPTIONS
 | ||
|   in makeg95.env, together with mingw32.bat). However, resource
 | ||
|   binding is not working yet so most apps with dialogs crash.
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| - Added Vadim's dynarray.h, dynarray.cpp.
 | ||
| - Added Vadim's menuitem.cpp.
 | ||
| - Added Windows-specific wxCheckListBox,
 | ||
|   owner-draw wxListBox, and drag-and-drop
 | ||
|   (see docs/msw/changes.txt).
 | ||
| 
 | ||
| Alpha 5, 14th February 1998
 | ||
| --------------------------
 | ||
| 
 | ||
| wxMSW:
 | ||
| 
 | ||
| - GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
 | ||
|   DISTRIBUTIONS. This change log will therefore now refer to
 | ||
|   the Windows-specific code only. See docs/changes.txt for generic
 | ||
|   changes.
 | ||
| - Removed Windows-specific reference counting system (GDI
 | ||
|   resources were cleaned up in idle time) - minimal
 | ||
|   advantages now we have a wxWin reference counting system.
 | ||
| - Added missing WXDLLEXPORT keywords so DLL compilation works
 | ||
|   again.
 | ||
| - Removed most warnings for GnuWin32 compilation.
 | ||
| - Added wxRegion/wxRegionIterator, but haven't yet used it in
 | ||
|   e.g. wxDC.
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| - GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE
 | ||
|   DISTRIBUTIONS. This change log will therefore now refer to
 | ||
|   the generic code only. See docs/msw/changes.txt for Windows-specific
 | ||
|   changes.
 | ||
| - Readmes, change logs and installation files now go in
 | ||
|   platform-specific directories under docs, e.g. docs/msw,
 | ||
|   docs/gtk.
 | ||
| - Added DECLARE_APP and IMPLEMENT_APP macros so wxApp object gets
 | ||
|   created dynamically, not as a global object.
 | ||
| - Put wxColour into wx/msw/colour.h, src/msw/colour.cpp.
 | ||
| - Changed names of some include/wx/generic headers to be
 | ||
|   consistent and to conform to gcc pragma conventions. Also
 | ||
|   changed choicesg.cpp to choicdgg.cpp.
 | ||
| - Added gcc pragmas.
 | ||
| - Added gtk inclusion in include/wx headers.
 | ||
| - Added consistent file headings to source and headers.
 | ||
| - Removed lang.cpp, lang.h and references to wxSTR_... variables;
 | ||
|   added a few references to wxTransString.
 | ||
| - Added operator to wxTransString that converts automatically
 | ||
|   to wxString, so we can say e.g. wxMessageBox(wxTransString("Hello"), ...).
 | ||
| - samples/internat now works (minimally).
 | ||
| - Added wxMouseEvent::GetPosition and
 | ||
|   wxMouseEvent::GetLogicalPosition, both returning wxPoints.
 | ||
| - Made wxSize and wxRect contain longs not ints.
 | ||
| - Cured some memory leaks (thanks Vadim).
 | ||
| - Tidied up OnIdle and introduced RequestMore/MoreRequested so
 | ||
|   will only keep processing OnIdle if it returns TRUE from
 | ||
|   MoreRequested.
 | ||
| 
 | ||
| Alpha 4, 31st January 1998
 | ||
| --------------------------
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - Changed wxDC functions to take longs instead of floats. GetSize now takes
 | ||
|   integer pointers, plus a version that returns a wxSize.
 | ||
| - const keyword added to various wxDC functions.
 | ||
| - Under Windows, wxDC no longer has any knowledge of whether
 | ||
|   an associated window is scrolled or not. Instead, the device
 | ||
|   origin is set by wxScrolledWindow in wxScrolledWindow::PrepareDC.
 | ||
| - wxScrolledWindow applications can optionally override the virtual OnDraw
 | ||
|   function instead of using the OnPaint event handler. The wxDC passed to
 | ||
|   OnDraw will be translated by PrepareDC to reflect scrolling.
 | ||
|   When drawing outside of OnDraw, must call PrepareDC explicitly.
 | ||
| - wxToolBarBase/wxToolBarSimple similarly changed to allow for
 | ||
|   scrolling toolbars.
 | ||
| - Integrated wxPostScriptDC patches for 1.xx by Chris Breeze,
 | ||
|   to help printing with multiple pages.
 | ||
| - IPC classes given base classes (wxConnectionBase etc.) which
 | ||
|   define the API used by different implementations. DDE
 | ||
|   implementation updated to use these base classes.
 | ||
| - wxHelpInstance now separated into wxHelpControllerBase (base
 | ||
|   for all implementations), wxWinHelpController (uses standard
 | ||
|   WinHelp), wxXLPHelpController (talks to wxHelp by DDE or
 | ||
|   TCP/IP). There will be others eventually, such as
 | ||
|   wxHTMLHelpController for Microsoft (and Netscape?) HTML Help.
 | ||
| - Added Vadim Zeitlin's wxString class plus
 | ||
|   internationalization code (gettext simulation, wxLocale, etc.).
 | ||
|   New files from Vadim:
 | ||
|   include\wx\string.h
 | ||
|   include\wx\debug.h
 | ||
|   include\wx\file.h
 | ||
|   include\wx\log.h
 | ||
|   include\wx\intl.h
 | ||
|   src\common\string.cpp
 | ||
|   src\common\log.cpp
 | ||
|   src\common\intl.cpp
 | ||
|   src\common\file.cpp
 | ||
|   No longer use GNU wxString files.
 | ||
| - Split off file-related functions into include\wx\filefn.h and
 | ||
|   src\common\filefn.cpp.
 | ||
| - Borland C++ support (WIN32) for main library and
 | ||
|   samples, using makefile.b32 files.
 | ||
| - Preparation done for allowing BC++ to compile wxWin as a DLL,
 | ||
|   including changes to defs.h.
 | ||
| - wxIntPoint removed, wxPoint is now int, and wxRealPoint
 | ||
|   introduced.
 | ||
| - Added wxShowEvent (generated when window is being shown or
 | ||
|   hidden).
 | ||
| - Got minimal, docview, mdi samples working for 16-bit VC++ and
 | ||
|   cured 16-bit problem with wxTextCtrl (removed global memory
 | ||
|   trick).
 | ||
| - Updated GnuWin32 makefiles, checked minimal, mdi, docview samples.
 | ||
| 
 | ||
| Alpha 3, September 1997
 | ||
| -----------------------
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - wxListCtrl, wxTreeCtrl, wxImageList classes done.
 | ||
| - Instigated new file hierarchy, split files and classes up more logically.
 | ||
| - PrologIO and some other utils now put into core library.
 | ||
| - Revamped print/preview classes, added wxPageSetupDialog.
 | ||
| - Started documentation.
 | ||
| 
 | ||
| Alpha 2, 30th April 1997
 | ||
| ------------------------
 | ||
| 
 | ||
| All:
 | ||
| 
 | ||
| - EVT_... macros now have at least one argument, for conformance
 | ||
|   with MetroWerks compiler.
 | ||
| - Added ids to .wxr file format.
 | ||
| - Got Dialog Editor compiled and running again but need
 | ||
|   to extend functionality to be in line with new controls.
 | ||
|   Added dialoged\test app to allow dynamic loading of .wxr files
 | ||
|   for testing purposes.
 | ||
| - Rewrote wxBitmap to allow installable file type
 | ||
|   handlers.
 | ||
| - Rewrote wxBitmapButton, wxStaticBitmap to not use Fafa.
 | ||
| - Wrote most of wxTreeCtrl and sample (need wxImageList to implement it
 | ||
|   fully).
 | ||
| - Added back wxRadioBox.
 | ||
| - Tidied up wx_main.cpp, wxApp class, putting PenWin code in
 | ||
|   a separate file.
 | ||
| 
 | ||
| Alpha 1, 5th April 1997
 | ||
| -----------------------
 | ||
| 
 | ||
| Generic:
 | ||
| 
 | ||
| At this point, the following has been achieved:
 | ||
| 
 | ||
| - A lot, but not all, of the code has been revamped for better
 | ||
|   naming conventions, protection of data members, and use of
 | ||
|   wxString instead of char *.
 | ||
| - Obsolete functionality deleted (e.g. default wxPanel layout,
 | ||
|   old system event system) and code size reduced.
 | ||
| - Class hierarchy changed (see design doc) - base classes such
 | ||
|   as wxbWindow now removed.
 | ||
| - No longer includes windows.h in wxWin headers, by using stand-in
 | ||
|   Windows types where needed e.g. WXHWND.
 | ||
| - PrologIO revised.
 | ||
| - wxScrolledWindow, wxStatusBar and new MDI classes added.
 | ||
|   MDI is now achieved using separate classes, not window styles.
 | ||
| - wxSystemSettings added, and made use of to reflect standard
 | ||
|   Windows settings.
 | ||
| - SetButtonFont/SetLabelFont replaced by SetFont; font and colour
 | ||
|   settings mucho rationalised.
 | ||
| - All windows are now subclassed with the same window proc to make
 | ||
|   event handling far more consistent. Old internal wxWnd and derived
 | ||
|   classes removed.
 | ||
| - API for controls revised, in particular addition of
 | ||
|   wxValidator parameters and removal of labels for some controls.
 | ||
| - 1 validator written: see examples/validate.
 | ||
| - Event table system introduced (see most samples and
 | ||
|   wx_event.cpp/ProcessEvent, wx_event.h). wxEvtHandler
 | ||
|   made more flexible, with Push/PopEventHandler allowing a chain
 | ||
|   of event handlers.
 | ||
| - wxRadioBox removed - will be added back soon.
 | ||
| - Toolbar class hierarchy revised:
 | ||
|   wxToolBarBase
 | ||
|   wxToolBarSimple (= old wxToolBar)
 | ||
|   wxToolBar95 (= old wxButtonBar under Win95
 | ||
|   wxToolBarMSW (= old wxButtonBar under WIN16/WIN32)
 | ||
| - Constraint system debugged somewhat (sizers now work properly).
 | ||
| - wxFileDialog, wxDirDialog added; other common dialogs now
 | ||
|   have class equivalents. Generic colour and font dialogs
 | ||
|   rewritten to not need obsolete panel layout.
 | ||
| - .wxr resource system partially reinstated, though needs
 | ||
|   an integer ID for controls. Hopefully the resource system
 | ||
|   will be replaced by something better and more efficient
 | ||
|   in the future.
 | ||
| - Device contexts no longer stored with window and accessed
 | ||
|   with GetDC - use wxClientDC, wxPaintDC, wxWindowDC stack
 | ||
|   variables instead.
 | ||
| - wxSlider uses trackbar class under Win95, and wxSL_LABELS flag
 | ||
|   determines whether labels are shown. Other Win95-specific flags
 | ||
|   introduced, e.g. for showing ticks.
 | ||
| - Styles introduced for dealing with 3D effects per window, for
 | ||
|   any window: all Win95 3D effects supported, plus transparent windows.
 | ||
| - Major change to allow 3D effect support without CTL3D, under
 | ||
|   Win95.
 | ||
| - Bitmap versions of button and checkbox separated out into new
 | ||
|   classes, but unimplemented as yet because I intend to remove
 | ||
|   the need for Fafa - it apparently causes GPFs in Win95 OSR 2.
 | ||
| - utils/wxprop classes working (except maybe wxPropertyFormView)
 | ||
|   in preparation for use in Dialog Editor.
 | ||
| - GNU-WIN32 compilation verified (a month or so ago).
 | ||
| 
 | ||
| 
 |