]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/todo30.txt
Make wxIcon more independent from wxBitmap implementation.
[wxWidgets.git] / docs / todo30.txt
index 6f31be6dc11689537a3935cd1ba3cb870286f913..9db91b2f26d3971842f7665b3228cb74563fbd83 100644 (file)
@@ -1,27 +1,90 @@
 Enhancements for wxWindows 3.0
 ==============================
 
 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
 ============
 
 
 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
 ====
 
 
 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
+
+- Tidy code and add comments to headers (preferably in
+  Doxygen/Javadoc style)
+
 
 Documentation
 =============
 
 Documentation
 =============
@@ -32,23 +95,23 @@ Documentation
 - wxDC : Precise definition of default/initial state. 
 - wxDC : Pixelwise definition of operations (e.g. last point of a
   line not drawn).
 - 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
 ========
 
 
 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
 
 
 Modules/Plugins
@@ -61,11 +124,13 @@ We aim to arrive at a lazy initializiation of modules only when they are first
 needed. Dependency information between modules is needed. Dynamic Plug-In
 loading and unloading must be compatible with that.
 
 needed. Dependency information between modules is needed. Dynamic Plug-In
 loading and unloading must be compatible with that.
 
+
 wxUniversal
 ===========
 
 - Renderers within native ports.
 
 wxUniversal
 ===========
 
 - Renderers within native ports.
 
+
 wxPrinting
 ==========
 
 wxPrinting
 ==========
 
@@ -73,6 +138,7 @@ wxPrinting
   of pages.
 - Preview UI enhancement.
 
   of pages.
 - Preview UI enhancement.
 
+
 wxStaticBox
 ===========
 
 wxStaticBox
 ===========
 
@@ -80,11 +146,41 @@ Hide the platform problems (GTK: 'children' must be siblings) in encapsulation
 in order to avoid problems on ports where the hierarchy must be
 'correct'.
 
 in order to avoid problems on ports where the hierarchy must be
 'correct'.
 
-Miscellaneous
-=============
 
 
-- wxDC Support for point to char-position with text rendering.
-- wxLocale Extension (eg currency).
-- wxStreams review.
+Removal of old code
+===================
+
+In addition to wxCOMPATIBILITY code:
+
+- wxProperty classes.
+- All wxCOMPATIBILITY (1.X) code.
+- contrib/src/canvas?
+- contrib/src/mmedia
+- contrib/src/applet?
+- utils/Install
+- wxDate, wxTime
+- Old wxODBC code
+- wxExpr (rewriting some OGL code or bundling wxExpr with OGL)
+- Old resource system
+- samples/resource
+- Dialog Editor
+- generic/src/htmlhelp.cpp
+
+
+wxMiscellaneous
+===============
+
+- wxDC Support for point to char-position with text rendering
+- wxLocale Extension (eg Currency)
+- wxStreams review
+- wxURL?
+- a way to tell wxWindows to check for any non-portable usage,
+  for a given set of platforms. Sometimes you want to be able
+  to get away with non-portable usage, and sometimes not.
+  This is probably way too time-consuming to implement.
+- In headers, don't silently omit contents if the features for this
+  header is switched off. Instead, emit an error message.
+- Implement native tree view and colour dialog in wxGTK.
 
 
 
 
+Version:      $Id$