diff --git a/docs/todo30.txt b/docs/todo30.txt index 6f31be6dc1..036695f526 100644 --- a/docs/todo30.txt +++ b/docs/todo30.txt @@ -1,27 +1,87 @@ Enhancements for wxWindows 3.0 ============================== -RCS-ID: $Id$ +This table contains the brief summary of the issues below. Priority and +Difficulty are values from 1 to 10 with 1 being the least important/difficult +and 10 the most. + +Item Prio Diff +---------------------------------------------------------------------------- +Namespaces 8 6 +STLization 10 8 +Making code exception-friendly 8 10 +Native RTTI 7 7 +TRUE/true 9 1 + C++ Features ============ -- Namespaces. -- STL containers compatibility (including using STL-like - adapters for wxWindows containers). -- Exception Handling: making the code exception-safe, and - also _using_ exceptions throughout the code. +- Namespaces: + We want to have all wxWindows identifiers in "wx" namespace but provide + typedefs/#defines for backwards compatibility. This can be done easily + for the classes and the only real problem are the enums as they would + all have to be duplicated at both the global scope (with "wx" prefix) and + in wx namespace (without it) + +- STLization + This involves providing optional wxString implementation using std::string + and doing the same for all our containers with the exception of wxHashMap + which should simply be rewritten using templates (but keeping the old + version for backwards compatibility -- ideally wx 3.0 would still be usable + without templates, even if not all of its features would be available then) + +- Exceptions + We are not going to use exceptions in wxWindows itself but our code should + become exception safe. This is a very difficult task as it means that no + resource allocations (including memory, files, whatever) should be done + without using a smart pointer-like object to store the result as it is the + only way to prevent resource leaks in presence of exceptions + +- Real RTTI + Optionally use the real RTTI instead of wx emulation of it. Keep the + current stuff for backwards compatibility. + +- Complete replacing TRUE/FALSE with true/false + Trivial + Core ==== -- Use wxEventLoop in all builds. -- Remove wxCOMPATIBILITY (1.X). -- Modularization/Build System/Project File Generation. -- A configuration tool to generate setup.h and configure - commands. -- RTTI native Support, Properties/Member-Metadata, 2-Step Init with - virtual create: e.g. Create(const wxArrayVariant&). +- use wxEventLoop in all builds + wxApp and wxDialog should use wxEventLoop objects (the exact class can be + customized by user code by overriding some wxApp::CreateEventLoop()) + instead of duplicating the same code + +- remove wxCOMPATIBILITY (1.X) + At least WXWIN_COMPATIBILITY and maybe WXWIN_COMPATIBILITY_2 code should be + removed from the library. wxDEPRECATED() should be used with everything + inside WXWIN_COMPATIBILITY_2_2. The stuff inside WXWIN_COMPATIBILITY_2_4 + probably should not be deprecated (yet?) because this would give thousands + of warnings for the existing code. + +- Modularization/Build System + Candidates for components: + + contrib widgets (and maybe some of the ones currently in the core) + + wxHTML + + network stuff + + printing (?) + + ODBC classes + + ... + +- Project File Generation + We need a (GUI) tool to generate the project/makefiles for all supported + platforms/compilers. Not sure if it should be used for the library itself + (would be nice to have something like "make menuconfig" for Linux kernel + which allows you to navigate easily amon all of the configure/setup.h + options but there is a problem with distributing such tool as it can't be + compiled by the user because it is needed before the library is built) but + we definitely need it for the users makefiles. + +- Properties/Member-Metadata, 2-Step Init with virtual create + TODO: still unclear what do we need exactly + Documentation ============= @@ -32,23 +92,23 @@ Documentation - wxDC : Precise definition of default/initial state. - wxDC : Pixelwise definition of operations (e.g. last point of a line not drawn). +- Events: + For all controls state clearly when calling a member function results in an + event being generated and when it doesn't. +- Update the coding standards guide + wxEvents ======== -Change Idle Handling --------------------- -Current Implementation is using too many CPU cycles. +- Change Idle Handling + Current Implementation is using too many CPU cycles -Loose Coupling Event-Source Event-Sink --------------------------------------- -Kind of the NextStep/C# very performant coupling, exposing -events via metadata. +- Loose Coupling Event-Source Event-Sink + kind of the NextStep/C# very performant coupling, exposing events via + Metadata -Remove Lazy Init of Eventtables -------------------------------- -Was introduced as a bug-fix, not needed anymore, consumes -considerable CPU time. +- Add Lazy Init of Eventtables Modules/Plugins @@ -80,11 +140,13 @@ Hide the platform problems (GTK: 'children' must be siblings) in encapsulation in order to avoid problems on ports where the hierarchy must be 'correct'. -Miscellaneous -============= +wxMiscellaneous +=============== -- wxDC Support for point to char-position with text rendering. -- wxLocale Extension (eg currency). -- wxStreams review. +- wxDC Support for point to char-position with text rendering +- wxLocale Extension (eg Currency) +- wxStreams review +- wxURL? +Version: $Id$