[main]  

WxExtLib - wxWidgets Extensions Library

  1. Introduction
  2. Features
  3. Sample Application and Screenshots
  4. Interface and Source Documentation
  5. Compilation and Tested Configurations
  6. List of Changes
  7. Open Issues
  8. Requirements
  9. License
  10. Configuration
  11. Sources and Download

1. Introduction

WxExtLib is an open source C++ library with extensions for the wxWidgets cross-platform UI library. It contains control validators for immediate status output, an extended message box class, various helper functions, a few new controls, and more.

The most mature parts of the library (and longest existing) are the StatusValidators (validators for various data types, which allow immediate validation and display of an error message to some dedicated status output control), the MessageExtDialog (allowing for arbitrary named buttons and better support for long message texts and optional HTML mode), and WxMisc (various helper functions).

Some other parts are rather experimental, as wxAppRootFrame, and will work only for some wxWidgets ports as expected.

Other parts may be interesting for general development with C or C++, as the 'safecast' headers, and do not depend on the wxWidgets library. The wxFormatMessage() function is probably interesting by its own, and, unforeseen, now is possibly for me one of the most useful or often used functions I ever wrote.

WxExtLib has been used for a few small and mid-sized projects I was working on. Sometimes, WxExtLib has been specifically extended to fit the needs of these programs. The biggest project that uses WxExtLib currently has around 40 K-SLOC, and runs in a Win32 environment using the wxMSW port.

2. Features

Extended dialog class

Type-safe casts: safecast facility

New message box class

Type-safe printf() replacement

Helper functions

Validators with immediate status output

Text/slider control pair validators .

Image(DIB) filter managing class

wxConfigEntryManager/wxConfigEntry classes

3. Sample Application and Screenshots

WxExtLib comes with a sample application to demonstrate some of the features of the library.

For the new version, a few ^screenshots are available.

For the old version 0.7.1, some more ^screenshots are available.

4. Interface and Source Documentation

Source documentation is currently contained as normal comments in headers and source files only.

Function or method parameters are usually documented only if the meaning is not obvious from the name of the parameter.

Comments in implementation files are often marked with an upper-case text, such as 'NOTE', 'WARN', 'BUG', 'PERFORMANCE' etc. giving a classification for the comment.

For various reasons I could not convince myself to convert comments to doxygen or JavaDoc like syntax. The goal is to use (or find) a documentation system with a lighter, Wiki-style comment syntax, better readable output, and acceptable member and function grouping functionality. A possible candidate for this, and at present maybe the only one as it seems, is ^Natural Docs.

5. Compilation and Tested Configurations

To use WxExtLib in an existing wxWidgets application, it is probably sufficient to add the files to the existing project- or makefiles.

To compile the sample application, one of the provided makefiles may be used. Most makefiles were generated by 'bdsgen', a makefile generator written by me using C++ as input and implementation language, which is planned to be published under an Open Source license in the future.

Tested configurations:

To compile with the makefiles, create a sub-directory like 'build/my-build-config', change into this directory and then run (n)make -f ../../make/MAKEFILE .... Makefile-variables like WxWidgetsPrefix, WxWidgetsBuildPrefix, SourceDir etc. must be set.

Example for building the sample application for wxGTK, version 2.8.0:

 $ mkdir -p build/my-build-config
 $ cd build/my-build-config

 $ make -f ../../make/makefile-gcc-wx252-debug-generic.mak \
     SourceDir=../../src \
     WxWidgetsPrefix=/build/wxWidgets-2.8.0/ \
     WxWidgetsBuildIncludeDir=/build/wxWidgets-2.8.0/build/gtk2/lib/wx/include/gtk2-ansi-debug-2.8/ \
     _checks _clean _all 

The '_checks' pseudo-target is used to run some tests on the provided paths first, and prints warnings if certain expected directories and files cannot not be found.

An example and additional notes are contained as comments at the beginning of the makefiles.

Note: For compilation under Linux, the makefiles currently assume the 'wx-config' program to be located at '${WxWidgetsBuildPrefix}' (as is the case after compiling wxWidgets from the sources).

To debug an executable compiled with debug-information with GCC, point a debugger like 'ddd' or 'insight' to the executable; to debug an executable compiled with debug-information with VC++, simply open the executable with the Visual C++ IDE.

6. List of Changes

A list of changes made since first public release (version 0.7.1) may be found in the ^Changelog.

Most important changes since version 0.7.1 are:

7. Open Issues

Version 0.7.1:

Version 0.84:

8. Requirements

9. License

WxExtLib is available under a Zlib-like open source license. The license text is available ^here.

Additionally, some files are placed in the public domain. These are:

Note that when linking against wxWidgets libraries, wxWidgets Library License must be considered as well, of course.

10. Configuration

WxExtLib is globally configured by defining or setting certain macros.

The file ^WxExtLibConfig_Setup.doc.html contains a description of used macros.

11. Sources and Download

Latest version

Previous releases

  [main]  
DaicasWeb v.1.50.0102  //   Daniel Käps  //   April 17, 2008  //   Impressum / Imprint 
http://www.daicas.net/WxExtLib/index.html