]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/tconfig.tex
Doc updates (debug stuff); Cygwin corrections
[wxWidgets.git] / docs / latex / wx / tconfig.tex
1 \section{Config classes overview}\label{wxconfigoverview}
2
3 Classes: \helpref{wxConfig}{wxconfigbase}
4
5 This overview briefly describes what the config classes are and what are the
6 for. All the details about how to use them may be found in the description of
7 the \helpref{wxConfigBase}{wxconfigbase} class and the documentation of the
8 file, registry and INI file based implementations mentions all the
9 features/limitations specific to each one of these versions.
10
11 The config classes provide a way to store some application configuration
12 information. They were especially designed for this usage and, although may
13 probably be used for many other things as well, should be limited to it. It
14 means that this information should be:
15 \begin{itemize}
16 \item{1.} Typed, i.e. strings or numbers for the moment. You can not store
17 binary data, for example.
18 \item{2.} Small. For instance, it is not recommended to use the Windows
19 registry for amounts of data more than a couple of kilobytes.
20 \item{3.} Not performance critical, neither from speed nor from memory
21 consumption point of view.
22 \end{itemize}
23
24 On the other hand, the provided features make them very useful for storing all
25 kind of small to medioum volumes of hierarchically organized heterogenous
26 data. In short, this is a place where you can conveniently stuff all your data
27 (numbers and strings) organizing it in a tree where you use the
28 filesystem-like paths to specify the location of a piece of data. In
29 particular, these classes were designed to be as easy to use as possible.
30
31 From another point of view, they provide an interface which hides the
32 differences between the Windows registry and the standard Unix text format
33 configuration files. Other (future) implementations of wxConfigBase might also
34 understand GTK ressource files or their analogues on the KDE side.
35
36 In any case, each implementation of wxConfigBase does its best (although due
37 to the limitations of the underlying physical storage as in the case of
38 wxIniConfigs it may not implement 100\% of the base class functionality) to
39 make the data look the same way everywhere. So you have the groups of entries
40 and the entries themselves. Each entry contains either a string or a number
41 (or a boolean value... support for other types of data such as dates or
42 timestamps is planned) and is identified by the full path to it: something
43 like /MyApp/UserPreferences/Colors/Foreground. The previous elements in the
44 path are the group names, each name may contain an arbitrary number of entries
45 and subgroups. The path components are {\bf always} separated with a slash,
46 even though some implementations use the backslash internally. The further
47 details (including how to read/write these entries) may be found in
48 \helpref{wxConfigBase}{wxconfigbase} documentation.