some more details

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2003-03-17 16:14:01 +00:00
parent 6b9aec458f
commit 13acdb7d36

View File

@ -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$