]> git.saurik.com Git - wxWidgets.git/blob - docs/todo30.txt
18676bbf40b484d95176ec5bf8e6fae6e5325de6
[wxWidgets.git] / docs / todo30.txt
1 Enhancements for wxWindows 3.0
2 ==============================
3
4 This table contains the brief summary of the issues below. Priority and
5 Difficulty are values from 1 to 10 with 1 being the least important/difficult
6 and 10 the most.
7
8 Item Prio Diff
9 ----------------------------------------------------------------------------
10 Namespaces 8 6
11 STLization 10 8
12 Making code exception-friendly 8 10
13 Native RTTI 7 7
14 TRUE/true 9 1
15
16
17 C++ Features
18 ============
19
20 - Namespaces:
21 We want to have all wxWindows identifiers in "wx" namespace but provide
22 typedefs/#defines for backwards compatibility. This can be done easily
23 for the classes and the only real problem are the enums as they would
24 all have to be duplicated at both the global scope (with "wx" prefix) and
25 in wx namespace (without it)
26
27 - STLization
28 This involves providing optional wxString implementation using std::string
29 and doing the same for all our containers with the exception of wxHashMap
30 which should simply be rewritten using templates (but keeping the old
31 version for backwards compatibility -- ideally wx 3.0 would still be usable
32 without templates, even if not all of its features would be available then)
33
34 - Exceptions
35 We are not going to use exceptions in wxWindows itself but our code should
36 become exception safe. This is a very difficult task as it means that no
37 resource allocations (including memory, files, whatever) should be done
38 without using a smart pointer-like object to store the result as it is the
39 only way to prevent resource leaks in presence of exceptions
40
41 - Real RTTI
42 Optionally use the real RTTI instead of wx emulation of it. Keep the
43 current stuff for backwards compatibility.
44
45 - Complete replacing TRUE/FALSE with true/false
46 Trivial
47
48
49 Core
50 ====
51
52 - use wxEventLoop in all builds
53 wxApp and wxDialog should use wxEventLoop objects (the exact class can be
54 customized by user code by overriding some wxApp::CreateEventLoop())
55 instead of duplicating the same code
56
57 - remove wxCOMPATIBILITY (1.X)
58 At least WXWIN_COMPATIBILITY and maybe WXWIN_COMPATIBILITY_2 code should be
59 removed from the library. wxDEPRECATED() should be used with everything
60 inside WXWIN_COMPATIBILITY_2_2. The stuff inside WXWIN_COMPATIBILITY_2_4
61 probably should not be deprecated (yet?) because this would give thousands
62 of warnings for the existing code.
63
64 - Modularization/Build System
65 Candidates for components:
66 + contrib widgets (and maybe some of the ones currently in the core)
67 + wxHTML
68 + network stuff
69 + printing (?)
70 + ODBC classes
71 + ...
72
73 - Project File Generation
74 We need a (GUI) tool to generate the project/makefiles for all supported
75 platforms/compilers. Not sure if it should be used for the library itself
76 (would be nice to have something like "make menuconfig" for Linux kernel
77 which allows you to navigate easily amon all of the configure/setup.h
78 options but there is a problem with distributing such tool as it can't be
79 compiled by the user because it is needed before the library is built) but
80 we definitely need it for the users makefiles.
81
82 - Properties/Member-Metadata, 2-Step Init with virtual create
83 TODO: still unclear what do we need exactly
84
85
86 Documentation
87 =============
88
89 - The possibility of moving doc into header files with tool
90 support.
91 - Detailed review of doc accuracy.
92 - wxDC : Precise definition of default/initial state.
93 - wxDC : Pixelwise definition of operations (e.g. last point of a
94 line not drawn).
95 - Events:
96 For all controls state clearly when calling a member function results in an
97 event being generated and when it doesn't.
98 - Update the coding standards guide
99
100
101 wxEvents
102 ========
103
104 - Change Idle Handling
105 Current Implementation is using too many CPU cycles
106
107 - Loose Coupling Event-Source Event-Sink
108 kind of the NextStep/C# very performant coupling, exposing events via
109 Metadata
110
111 - Add Lazy Init of Eventtables
112
113
114 Modules/Plugins
115 ===============
116
117 Architecture
118 ------------
119
120 We aim to arrive at a lazy initializiation of modules only when they are first
121 needed. Dependency information between modules is needed. Dynamic Plug-In
122 loading and unloading must be compatible with that.
123
124
125 wxUniversal
126 ===========
127
128 - Renderers within native ports.
129
130
131 wxPrinting
132 ==========
133
134 - Page preflighting capabilities in order to determine number
135 of pages.
136 - Preview UI enhancement.
137
138
139 wxStaticBox
140 ===========
141
142 Hide the platform problems (GTK: 'children' must be siblings) in encapsulation
143 in order to avoid problems on ports where the hierarchy must be
144 'correct'.
145
146
147 Removal of old code
148 ===================
149
150 In addition to wxCOMPATIBILITY code:
151
152 - wxProperty classes.
153 - All wxCOMPATIBILITY (1.X) code.
154 - contrib/src/canvas?
155 - contrib/src/mmedia
156 - contrib/src/applet?
157 - utils/Install
158 - wxDate, wxTime
159 - Layout constraints code
160 - Old wxODBC code
161
162
163 wxMiscellaneous
164 ===============
165
166 - wxDC Support for point to char-position with text rendering
167 - wxLocale Extension (eg Currency)
168 - wxStreams review
169 - wxURL?
170
171
172 Version: $Id$