Building From Source
Release Notes for wx.NET v0.6
16 December 2004
Major Global Changes
- Lots and lots of bug fixes!
- wxWidgets 2.5.3 is now used as a base and is required to compile wx.NET.
- Almost all missing members and constructors were added to the available wx.NET classes.
- Added support for automatic ID generation for Window derived
controls/classes. Just call the ctor without id and a "unique" id will be
generated starting from value 10001. To get the id of a Window/Control just
- Numerous missing event classes were added and existing ones better
- MaximizeEvent, IconizedEvent, InitDialogEvent, ChildFocusEvent,
EraseEvent, FocusEvent, NcPaintEvent, PaintEvent, SetCursorEvent, ShowEvent,
DisplayChangedEvent, MouseCaptureChangedEvent, NavigationKeyEvent,
PaletteChangedEvent, QueryNewPaletteEvent, SysColourChangedEvent,
IdleEvent, WindowCreateEvent, WindowDestroyEvent
- AcceleratorEntry, AcceleratorTable
- ImageHandler, ImageHistogramEntry, ImageHistogram, BMPHandler,
ICOHandler, CURHandler, ANIHandler, PNGHandler, GIFHandler, PCXHandler,
- Locale, LanguageInfo
Supports internationalization (I18N)
of your wx.NET app. Translation of a string (if there is a translated
version in a po/mo file) is posible with: _("string to translate") or
GetTranslation("string to translate"). For example:
_("&About..."), new EventListener(OnAbout) );See the new Internat sample.
- The Style, Tree, and Item menus were implemented in the TreeCtrl sample.
Memory Related Fixes and Updates
- Added IDisposable interface to Object.
- All classes not derived from wxObject now implement their own memory
handling. Examples include wxString and TreeItemId. Such classes have their
own Dispose member which deletes the correct C/C++ instance (the old version
did nothing as it could only delete wxObject instances). But: the delete
wrapper (_dtor) gets only called if it is handling its own memory. For
example: if we return a new wxString from a wrapper file with:
return new wxString(self->GetLabel());
then in the corresponding C# file we call wxString with:
return new wxString(wxTreeEvent_GetLabel(wxObject),
The boolean value "true" sets the internal bool memOwn of wxString to true
so that wxString.Dispose knows "hey I have to call the wrapper delete
- You can get now a list of all children of a window with:
ArrayList al = mywin.Children;
foreach(Window w in al) ...
- The tree in a TreeCtrl and the list in a ListCtrl can now be sorted
(just write your own compare functions).
- Boolean values are not returned as 1 or 0 in all cxx wrapper files.
- Source and binary package creation was automated. This lives under the
new "Dist" sub-directory.
A SWIG Future
In parallel to the above changes to the existing wx.NET codebase,
Alexander Olk has been creating tools to automate the creation of wx.NET's
C++ and C# wrappers using SWIG
(Simplified Wrapper and Interface Generator). SWIG is what is used to create
The code generator lives under Utils/WNG. It is already possible to build
libwx-c and wx.NET.dll. All you need is the latest swig version (1.3.24), no
patches are necessary and no changes have to be made to Mikes build system.
At some point in the first part of 2005 we will switch from
developing/maintaining the wx.NET wrapper by hand to "SWIGing" it!
8 January 2005
- Bugfix for wxString handling on Windows: Windows doesn't get build in
unicode mode so it isn't a good idea to return a int type for GetChar
instead of a char type
- Added AddPendingEvent in EvtHandler
Alexander Olk is responsible for 99% of this release. Please consider
donating to the
wx.NET fundraising campaign if you are a commercial entity using or
evaluating wx.NET or an individual with a few coins to spare. Donations will
help support Alexander's fine work.
Bryan Bulten worked on wxWidgets 2.5.3 porting and wxString memory issues.
Mike Muegel worked on wxWIdgets 2.5.3 build system changes, automated the
package creation process, and created the release files.