]>
Commit | Line | Data |
---|---|---|
c4afa2cb VZ |
1 | \section{\class{wxConfigBase}}\label{wxconfigbase} |
2 | ||
3 | wxConfigBase class defines the basic interface of all config classes. It can | |
4 | not be used by itself (it's an abstract base class) and you'll always use one | |
5f3cd8a2 VZ |
5 | of its derivations: \helpref{wxIniConfig}{wxiniconfig}, |
6 | \helpref{wxFileConfig}{wxfileconfig}, \helpref{wxRegConfig}{wxregconfig} or | |
c4afa2cb VZ |
7 | any other. |
8 | ||
9 | However, usually you don't even need to know the precise nature of the class | |
10 | you're working with but you would just use the wxConfigBase methods. This | |
11 | allows you to write the same code regardless of whether you're working with | |
12 | the registry under Win32 or text-based config files under Unix (or even | |
13 | Windows 3.1 .INI files if you're really unlucky). To make writing the portable | |
052ae0e5 | 14 | code even easier, wxWindows provides a typedef wxConfig |
c4afa2cb VZ |
15 | which is mapped onto the native wxConfigBase implementation on the given |
16 | platform: i.e. wxRegConfig under Win32, wxIniConfig under Win16 and | |
17 | wxFileConfig otherwise. | |
18 | ||
5f3cd8a2 VZ |
19 | See \helpref{config overview}{wxconfigoverview} for the descriptions of all |
20 | features of this class. | |
c4afa2cb VZ |
21 | |
22 | \wxheading{Derived from} | |
23 | ||
24 | No base class | |
25 | ||
26 | \wxheading{Example} | |
27 | ||
28 | Here is how you would typically use this class: | |
29 | ||
30 | \begin{verbatim} | |
31 | // using wxConfig instead of writing wxFileConfig or wxRegConfig enhances | |
32 | // portability of the code | |
33 | wxConfig *config = new wxConfig("MyAppName"); | |
34 | ||
35 | wxString str; | |
052ae0e5 | 36 | if ( config->Read("LastPrompt", &str) ) { |
b8de493f | 37 | // last prompt was found in the config file/registry and its value is now |
c4afa2cb VZ |
38 | // in str |
39 | ... | |
40 | } | |
41 | else { | |
42 | // no last prompt... | |
43 | } | |
44 | ||
45 | // another example: using default values and the full path instead of just | |
46 | // key name: if the key is not found , the value 17 is returned | |
47 | long value = config->Read("/LastRun/CalculatedValues/MaxValue", -1); | |
48 | ... | |
49 | ... | |
50 | ... | |
51 | // at the end of the program we would save everything back | |
52 | config->Write("LastPrompt", str); | |
53 | config->Write("/LastRun/CalculatedValues/MaxValue", value); | |
54 | ||
55 | // the changes will be written back automatically | |
56 | delete config; | |
57 | \end{verbatim} | |
58 | ||
59 | This basic example, of course, doesn't show all wxConfig features, such as | |
60 | enumerating, testing for existence and deleting the entries and groups of | |
b8de493f | 61 | entries in the config file, its abilities to automatically store the default |
c4afa2cb VZ |
62 | values or expand the environment variables on the fly. However, the main idea |
63 | is that using this class is easy and that it should normally do what you | |
64 | expect it to. | |
65 | ||
66 | NB: in the documentation of this class, the words "config file" also mean | |
67 | "registry hive" for wxRegConfig and, generally speaking, might mean any | |
b8de493f | 68 | physical storage where a wxConfigBase-derived class stores its data. |
c4afa2cb | 69 | |
b8de493f | 70 | \latexignore{\rtfignore{\wxheading{Function groups}}} |
c4afa2cb | 71 | |
b8de493f | 72 | \membersection{Static functions} |
c4afa2cb | 73 | |
052ae0e5 | 74 | These functions deal with the "default" config object. Although its usage is |
c4afa2cb VZ |
75 | not at all mandatory it may be convenient to use a global config object |
76 | instead of creating and deleting the local config objects each time you need | |
77 | one (especially because creating a wxFileConfig object might be a time | |
78 | consuming operation). In this case, you may create this global config object | |
79 | in the very start of the program and {\it Set()} it as the default. Then, from | |
80 | anywhere in your program, you may access it using the {\it Get()} function. Of | |
81 | course, you should delete it on the program termination (otherwise, not only a | |
82 | memory leak will result, but even more importantly the changes won't be | |
83 | written back!). | |
84 | ||
85 | As it happens, you may even further simplify the procedure described above: | |
86 | you may forget about calling {\it Set()}. When {\it Get()} is called and there | |
87 | is no current object, it will create one using {\it Create()} function. To | |
88 | disable this behaviour {\it DontCreateOnDemand()} is provided. | |
89 | ||
b8de493f JS |
90 | \helpref{Set}{wxconfigbaseset}\\ |
91 | \helpref{Get}{wxconfigbaseget}\\ | |
92 | \helpref{Create}{wxconfigbasecreate}\\ | |
93 | \helpref{DontCreateOnDemand}{wxconfigbasedontcreateondemand} | |
c4afa2cb | 94 | |
b8de493f | 95 | \membersection{Constructor and destructor} |
c4afa2cb | 96 | |
b8de493f JS |
97 | \helpref{wxConfigBase}{wxconfigbasector}\\ |
98 | \helpref{\destruct{wxConfigBase}}{wxconfigbasedtor} | |
c4afa2cb | 99 | |
b8de493f | 100 | \membersection{Path management} |
c4afa2cb | 101 | |
5f3cd8a2 VZ |
102 | As explained in \helpref{config overview}{wxconfigoverview}, the config classes |
103 | support a file system-like hierarchy of keys (files) and groups (directories). | |
c4afa2cb VZ |
104 | As in the file system case, to specify a key in the config class you must use |
105 | a path to it. Config classes also support the notion of the current group, | |
106 | which makes it possible to use the relative paths. To clarify all this, here | |
107 | is an example (it's only for the sake of demonstration, it doesn't do anything | |
108 | sensible!): | |
109 | ||
110 | \begin{verbatim} | |
111 | wxConfig *config = new wxConfig("FooBarApp"); | |
112 | ||
113 | // right now the current path is '/' | |
114 | conf->Write("RootEntry", 1); | |
115 | ||
116 | // go to some other place: if the group(s) don't exist, they will be created | |
117 | conf->SetPath("/Group/Subgroup"); | |
118 | ||
119 | // create an entry in subgroup | |
120 | conf->Write("SubgroupEntry", 3); | |
121 | ||
122 | // '..' is understood | |
123 | conf->Write("../GroupEntry", 2); | |
124 | conf->SetPath(".."); | |
125 | ||
126 | wxASSERT( conf->Read("Subgroup/SubgroupEntry", 0l) == 3 ); | |
127 | ||
128 | // use absolute path: it's allowed, too | |
129 | wxASSERT( conf->Read("/RootEntry", 0l) == 1 ); | |
130 | \end{verbatim} | |
131 | ||
b8de493f | 132 | {\it Warning}: it's probably a good idea to always restore the path to its |
c4afa2cb | 133 | old value on function exit: |
b8de493f | 134 | |
c4afa2cb VZ |
135 | \begin{verbatim} |
136 | void foo(wxConfigBase *config) | |
137 | { | |
138 | wxString strOldPath = config->GetPath(); | |
139 | ||
140 | config->SetPath("/Foo/Data"); | |
141 | ... | |
142 | ||
143 | config->SetPath(strOldPath); | |
144 | } | |
145 | \end{verbatim} | |
146 | ||
147 | because otherwise the assert in the following example will surely fail | |
148 | (we suppose here that {\it foo()} function is the same as above except that it | |
149 | doesn't save and restore the path): | |
150 | ||
151 | \begin{verbatim} | |
152 | void bar(wxConfigBase *config) | |
153 | { | |
154 | config->Write("Test", 17); | |
155 | ||
156 | foo(config); | |
157 | ||
158 | // we're reading "/Foo/Data/Test" here! -1 will probably be returned... | |
159 | wxASSERT( config->Read("Test", -1) == 17 ); | |
160 | } | |
161 | \end{verbatim} | |
162 | ||
163 | Finally, the path separator in wxConfigBase and derived classes is always '/', | |
b8de493f | 164 | regardless of the platform (i.e. it's {\bf not} '$\backslash\backslash$' under Windows). |
c4afa2cb | 165 | |
b8de493f JS |
166 | \helpref{SetPath}{wxconfigbasesetpath}\\ |
167 | \helpref{GetPath}{wxconfigbasegetpath} | |
c4afa2cb | 168 | |
b8de493f | 169 | \membersection{Enumeration} |
c4afa2cb VZ |
170 | |
171 | The functions in this section allow to enumerate all entries and groups in the | |
b8de493f | 172 | config file. All functions here return FALSE when there are no more items. |
c4afa2cb | 173 | |
b8de493f | 174 | You must pass the same index to GetNext and GetFirst (don't modify it). |
c4afa2cb VZ |
175 | Please note that it's {\bf not} the index of the current item (you will have |
176 | some great surprizes with wxRegConfig if you assume this) and you shouldn't | |
177 | even look at it: it's just a "cookie" which stores the state of the | |
178 | enumeration. It can't be stored inside the class because it would prevent you | |
179 | from running several enumerations simultaneously, that's why you must pass it | |
180 | explicitly. | |
181 | ||
182 | Having said all this, enumerating the config entries/groups is very simple: | |
183 | ||
184 | \begin{verbatim} | |
185 | wxArrayString aNames; | |
186 | ||
187 | // enumeration variables | |
188 | wxString str; | |
189 | long dummy; | |
190 | ||
191 | // first enum all entries | |
192 | bool bCont = config->GetFirstEntry(str, dummy); | |
193 | while ( bCont ) { | |
194 | aNames.Add(str); | |
195 | ||
196 | bCont = GetConfig()->GetNextEntry(str, dummy); | |
197 | } | |
198 | ||
199 | ... we have all entry names in aNames... | |
200 | ||
201 | // now all groups... | |
202 | bCont = GetConfig()->GetFirstGroup(str, dummy); | |
203 | while ( bCont ) { | |
204 | aNames.Add(str); | |
205 | ||
206 | bCont = GetConfig()->GetNextGroup(str, dummy); | |
207 | } | |
208 | ||
209 | ... we have all group (and entry) names in aNames... | |
210 | ||
211 | \end{verbatim} | |
212 | ||
b8de493f | 213 | There are also functions to get the number of entries/subgroups without |
c4afa2cb VZ |
214 | actually enumerating them, but you will probably never need them. |
215 | ||
b8de493f JS |
216 | \helpref{GetFirstGroup}{wxconfigbasegetfirstgroup}\\ |
217 | \helpref{GetNextGroup}{wxconfigbasegetnextgroup}\\ | |
218 | \helpref{GetFirstEntry}{wxconfigbasegetfirstentry}\\ | |
219 | \helpref{GetNextEntry}{wxconfigbasegetnextentry}\\ | |
220 | \helpref{GetNumberOfEntries}{wxconfigbasegetnumberofentries}\\ | |
221 | \helpref{GetNumberOfGroups}{wxconfigbasegetnumberofgroups} | |
c4afa2cb | 222 | |
b8de493f | 223 | \membersection{Tests of existence} |
c4afa2cb | 224 | |
b8de493f JS |
225 | \helpref{HasGroup}{wxconfigbasehasgroup}\\ |
226 | \helpref{HasEntry}{wxconfigbasehasentry}\\ | |
227 | \helpref{Exists}{wxconfigbaseexists} | |
c4afa2cb | 228 | |
052ae0e5 JS |
229 | \membersection{Miscellaneous accessors} |
230 | ||
231 | \helpref{SetAppName}{wxconfigbasesetappname}\\ | |
232 | \helpref{GetAppName}{wxconfigbasegetappname}\\ | |
233 | \helpref{SetVendorName}{wxconfigbasesetvendorname}\\ | |
234 | \helpref{GetVendorName}{wxconfigbasegetvendorname} | |
235 | ||
b8de493f | 236 | \membersection{Key access} |
c4afa2cb VZ |
237 | |
238 | These function are the core of wxConfigBase class: they allow you to read and | |
239 | write config file data. All {\it Read} function take a default value which | |
240 | will be returned if the specified key is not found in the config file. | |
241 | ||
242 | Currently, only two types of data are supported: string and long (but it might | |
243 | change in the near future). To work with other types: for {\it int} or {\it | |
244 | bool} you can work with function taking/returning {\it long} and just use the | |
245 | casts. Better yet, just use {\it long} for all variables which you're going to | |
b8de493f | 246 | save in the config file: chances are that \verb$sizeof(bool) == sizeof(int) == sizeof(long)$ anyhow on your system. For {\it float}, {\it double} and, in |
c4afa2cb VZ |
247 | general, any other type you'd have to translate them to/from string |
248 | representation and use string functions. | |
249 | ||
250 | Try not to read long values into string variables and vice versa: although it | |
251 | just might work with wxFileConfig, you will get a system error with | |
252 | wxRegConfig because in the Windows registry the different types of entries are | |
253 | indeed used. | |
254 | ||
255 | Final remark: the {\it szKey} parameter for all these functions can contain an | |
256 | arbitrary path (either relative or absolute), not just the key name. | |
257 | ||
b8de493f JS |
258 | \helpref{Read}{wxconfigbaseread}\\ |
259 | \helpref{Write}{wxconfigbasewrite}\\ | |
260 | \helpref{Flush}{wxconfigbaseflush} | |
261 | ||
262 | \membersection{Delete entries/groups} | |
263 | ||
264 | The functions in this section delete entries and/or groups of entries from the | |
265 | config file. {\it DeleteAll()} is especially useful if you want to erase all | |
266 | traces of your program presence: for example, when you uninstall it. | |
267 | ||
268 | \helpref{DeleteEntry}{wxconfigbasedeleteentry}\\ | |
269 | \helpref{DeleteGroup}{wxconfigbasedeletegroup}\\ | |
270 | \helpref{DeleteAll}{wxconfigbasedeleteall} | |
271 | ||
272 | \membersection{Options} | |
273 | ||
274 | Some aspects of wxConfigBase behaviour can be changed during run-time. The | |
275 | first of them is the expansion of environment variables in the string values | |
276 | read from the config file: for example, if you have the following in your | |
277 | config file: | |
278 | ||
279 | \begin{verbatim} | |
280 | # config file for my program | |
281 | UserData = $HOME/data | |
282 | ||
283 | # the following syntax is valud only under Windows | |
284 | UserData = %windir%\\data.dat | |
285 | \end{verbatim} | |
286 | ||
287 | the call to \verb$config->Read("UserData")$ will return something like | |
288 | \verb$"/home/zeitlin/data"$ if you're lucky enough to run a Linux system ;-) | |
289 | ||
290 | Although this feature is very useful, it may be annoying if you read a value | |
291 | which containts '\$' or '\%' symbols (\% is used for environment variables | |
292 | expansion under Windows) which are not used for environment variable | |
293 | expansion. In this situation you may call SetExpandEnvVars(FALSE) just before | |
294 | reading this value and SetExpandEnvVars(TRUE) just after. Another solution | |
295 | would be to prefix the offending symbols with a backslash. | |
296 | ||
297 | The following functions control this option: | |
298 | ||
299 | \helpref{IsExpandingEnvVars}{wxconfigbaseisexpandingenvvars}\\ | |
300 | \helpref{SetExpandingEnvVars}{wxconfigbasesetexpandingenvvars}\\ | |
301 | \helpref{SetRecordDefaults}{wxconfigbasesetrecorddefaults}\\ | |
302 | \helpref{IsRecordingDefaults}{wxconfigbaseisrecordingdefaults} | |
303 | ||
304 | %%%%% MEMBERS HERE %%%%% | |
305 | \helponly{\insertatlevel{2}{ | |
306 | ||
307 | \wxheading{Members} | |
308 | ||
309 | }} | |
310 | ||
052ae0e5 | 311 | \membersection{wxConfigBase::wxConfigBase}\label{wxconfigbasector} |
b8de493f | 312 | |
052ae0e5 JS |
313 | \func{}{wxConfigBase}{\param{const wxString\& }{appName = wxEmptyString}, |
314 | \param{const wxString\& }{vendorName = wxEmptyString}, | |
315 | \param{const wxString\& }{localFilename = wxEmptyString}, | |
316 | \param{const wxString\& }{globalFilename = wxEmptyString}, | |
317 | \param{long}{ style = 0}} | |
b8de493f | 318 | |
5f3cd8a2 VZ |
319 | This is the default and only constructor of the wxConfigBase class, and |
320 | derived classes. | |
b8de493f | 321 | |
052ae0e5 | 322 | \wxheading{Parameters} |
b8de493f | 323 | |
5f3cd8a2 VZ |
324 | \docparam{appName}{The application name. If this is empty, the class will |
325 | normally use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The | |
326 | application name is used in the registry key on Windows, and can be used to | |
327 | deduce the local filename parameter if that is missing.} | |
b8de493f | 328 | |
052ae0e5 JS |
329 | \docparam{vendorName}{The vendor name. If this is empty, it is assumed that |
330 | no vendor name is wanted, if this is optional for the current config class. | |
331 | The vendor name is appended to the application name for wxRegConfig.} | |
b8de493f | 332 | |
5f3cd8a2 VZ |
333 | \docparam{localFilename}{Some config classes require a local filename. If this |
334 | is not present, but required, the application name will be used instead.} | |
b8de493f | 335 | |
5f3cd8a2 VZ |
336 | \docparam{globalFilename}{Some config classes require a global filename. If |
337 | this is not present, but required, the application name will be used instead.} | |
b8de493f | 338 | |
5f3cd8a2 VZ |
339 | \docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and |
340 | wxCONFIG\_USE\_GLOBAL\_FILE. The style interpretation depends on the config | |
341 | class and is ignored by some. For wxFileConfig, these styles determine whether | |
342 | a local or global config file is created or used. If the flag is present but | |
343 | the parameter is empty, the parameter will be set to a default. If the | |
344 | parameter is present but the style flag not, the relevant flag will be added | |
345 | to the style.} | |
b8de493f | 346 | |
052ae0e5 | 347 | \wxheading{Remarks} |
b8de493f | 348 | |
5f3cd8a2 VZ |
349 | By default, environment variable expansion is on and recording defaults is |
350 | off. | |
b8de493f | 351 | |
052ae0e5 | 352 | \membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor} |
b8de493f | 353 | |
052ae0e5 | 354 | \func{}{\destruct{wxConfigBase}}{\void} |
b8de493f | 355 | |
052ae0e5 | 356 | Empty but ensures that dtor of all derived classes is virtual. |
b8de493f JS |
357 | |
358 | \membersection{wxConfigBase::Create}\label{wxconfigbasecreate} | |
359 | ||
052ae0e5 | 360 | \func{static wxConfigBase *}{Create}{\void} |
b8de493f JS |
361 | |
362 | Create a new config object: this function will create the "best" | |
5f3cd8a2 VZ |
363 | implementation of wxConfig available for the current platform, see comments |
364 | near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns the | |
365 | created object and also sets it as the current one. | |
b8de493f JS |
366 | |
367 | \membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand} | |
368 | ||
369 | \func{void}{DontCreateOnDemand}{\void} | |
370 | ||
371 | Calling this function will prevent {\it Get()} from automatically creating a | |
372 | new config object if the current one is NULL. It might be useful to call it | |
373 | near the program end to prevent new config object "accidental" creation. | |
374 | ||
052ae0e5 | 375 | \membersection{wxConfigBase::DeleteAll}\label{wxconfigbasedeleteall} |
b8de493f | 376 | |
052ae0e5 | 377 | \func{bool}{DeleteAll}{\void} |
b8de493f | 378 | |
052ae0e5 JS |
379 | Delete the whole underlying object (disk file, registry key, ...). Primarly |
380 | for use by desinstallation routine. | |
b8de493f | 381 | |
052ae0e5 | 382 | \membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry} |
b8de493f | 383 | |
5f3cd8a2 VZ |
384 | \func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{ |
385 | bDeleteGroupIfEmpty = TRUE}} | |
b8de493f | 386 | |
5f3cd8a2 VZ |
387 | Deletes the specified entry and the group it belongs to if it was the last key |
388 | in it and the second parameter is true. | |
b8de493f | 389 | |
052ae0e5 | 390 | \membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup} |
b8de493f | 391 | |
052ae0e5 | 392 | \func{bool}{DeleteGroup}{\param{const wxString\& }{ key}} |
b8de493f | 393 | |
052ae0e5 JS |
394 | Delete the group (with all subgroups) |
395 | ||
396 | \membersection{wxConfigBase::Exists}\label{wxconfigbaseexists} | |
397 | ||
398 | \constfunc{bool}{Exists}{\param{wxString\& }{strName}} | |
399 | ||
400 | returns TRUE if either a group or an entry with a given name exists | |
401 | ||
402 | \membersection{wxConfigBase::Flush}\label{wxconfigbaseflush} | |
403 | ||
404 | \func{bool}{Flush}{\param{bool }{bCurrentOnly = FALSE}} | |
405 | ||
406 | permanently writes all changes (otherwise, they're only written from object's | |
407 | destructor) | |
408 | ||
409 | \membersection{wxConfigBase::Get}\label{wxconfigbaseget} | |
410 | ||
411 | \func{wxConfigBase *}{Get}{\void} | |
412 | ||
413 | Get the current config object. If there is no current object, creates one | |
414 | (using {\it Create}) unless DontCreateOnDemand was called previously. | |
415 | ||
416 | \membersection{wxConfigBase::GetAppName}\label{wxconfigbasegetappname} | |
417 | ||
418 | \constfunc{wxString}{GetAppName}{\void} | |
419 | ||
420 | Returns the application name. | |
421 | ||
422 | \membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup} | |
423 | ||
5f3cd8a2 VZ |
424 | \constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{ |
425 | index}} | |
052ae0e5 JS |
426 | |
427 | Gets the first group. | |
428 | ||
429 | \membersection{wxConfigBase::GetFirstEntry}\label{wxconfigbasegetfirstentry} | |
430 | ||
5f3cd8a2 VZ |
431 | \constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{ |
432 | index}} | |
052ae0e5 JS |
433 | |
434 | Gets the first entry. | |
435 | ||
436 | \membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup} | |
437 | ||
5f3cd8a2 VZ |
438 | \constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{ |
439 | index}} | |
052ae0e5 JS |
440 | |
441 | Gets the next group. | |
442 | ||
443 | \membersection{wxConfigBase::GetNextEntry}\label{wxconfigbasegetnextentry} | |
444 | ||
5f3cd8a2 VZ |
445 | \constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{ |
446 | index}} | |
052ae0e5 JS |
447 | |
448 | Gets the next entry. | |
449 | ||
450 | \membersection{wxConfigBase::GetNumberOfEntries}\label{wxconfigbasegetnumberofentries} | |
451 | ||
452 | \constfunc{uint }{GetNumberOfEntries}{\param{bool }{bRecursive = FALSE}} | |
453 | ||
454 | \membersection{wxConfigBase::GetNumberOfGroups}\label{wxconfigbasegetnumberofgroups} | |
455 | ||
456 | \constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}} | |
457 | ||
5f3cd8a2 VZ |
458 | Get number of entries/subgroups in the current group, with or without its |
459 | subgroups. | |
b8de493f JS |
460 | |
461 | \membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath} | |
462 | ||
052ae0e5 | 463 | \constfunc{const wxString\&}{GetPath}{\void} |
b8de493f JS |
464 | |
465 | Retrieve the current path (always as absolute path). | |
466 | ||
052ae0e5 | 467 | \membersection{wxConfigBase::GetVendorName}\label{wxconfigbasegetvendorname} |
b8de493f | 468 | |
052ae0e5 | 469 | \constfunc{wxString}{GetVendorName}{\void} |
b8de493f | 470 | |
052ae0e5 | 471 | Returns the vendor name. |
b8de493f JS |
472 | |
473 | \membersection{wxConfigBase::HasEntry}\label{wxconfigbasehasentry} | |
474 | ||
475 | \constfunc{bool}{HasEntry}{\param{wxString\& }{strName}} | |
476 | ||
477 | returns TRUE if the entry by this name exists | |
478 | ||
052ae0e5 | 479 | \membersection{wxConfigBase::HasGroup}\label{wxconfigbasehasgroup} |
b8de493f | 480 | |
052ae0e5 | 481 | \constfunc{bool}{HasGroup}{\param{const wxString\& }{strName}} |
b8de493f | 482 | |
052ae0e5 JS |
483 | returns TRUE if the group by this name exists |
484 | ||
485 | \membersection{wxConfigBase::IsExpandingEnvVars}\label{wxconfigbaseisexpandingenvvars} | |
486 | ||
487 | \constfunc{bool}{IsExpandingEnvVars}{\void} | |
488 | ||
489 | Returns TRUE if we are expanding environment variables in key values. | |
490 | ||
491 | \membersection{wxConfigBase::IsRecordingDefaults}\label{wxconfigbaseisrecordingdefaults} | |
492 | ||
493 | \func{bool}{IsRecordingDefaults}{\void} const | |
494 | ||
495 | Returns TRUE if we are writing defaults back to the config file. | |
b8de493f JS |
496 | |
497 | \membersection{wxConfigBase::Read}\label{wxconfigbaseread} | |
498 | ||
5f3cd8a2 VZ |
499 | \constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ |
500 | str}} | |
052ae0e5 | 501 | |
5f3cd8a2 VZ |
502 | Read a string from the key, returning TRUE if the value was read. If the key |
503 | was not found, {\it str} is not changed. | |
052ae0e5 | 504 | |
5f3cd8a2 VZ |
505 | \constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{ |
506 | str}, \param{const wxString\& }{defaultVal}} | |
052ae0e5 | 507 | |
5f3cd8a2 VZ |
508 | Read a string from the key. The default value is returned if the key was not |
509 | found. | |
c4afa2cb | 510 | |
052ae0e5 | 511 | Returns TRUE if value was really read, FALSE if the default was used. |
c4afa2cb | 512 | |
5f3cd8a2 VZ |
513 | \constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const |
514 | wxString\& }{defaultVal}} | |
c4afa2cb | 515 | |
052ae0e5 | 516 | Another version of {\it Read()}, returning the string value directly. |
c4afa2cb | 517 | |
052ae0e5 | 518 | \constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}} |
c4afa2cb | 519 | |
5f3cd8a2 VZ |
520 | Reads a long value, returning TRUE if the value was found. If the value was |
521 | not found, {\it l} is not changed. | |
c4afa2cb | 522 | |
5f3cd8a2 VZ |
523 | \constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}, |
524 | \param{long}{ defaultVal}} | |
052ae0e5 | 525 | |
5f3cd8a2 VZ |
526 | Reads a long value, returning TRUE if the value was found. If the value was |
527 | not found, {\it defaultVal} is used instead. | |
052ae0e5 | 528 | |
5f3cd8a2 VZ |
529 | \constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{ |
530 | defaultVal}} | |
052ae0e5 | 531 | |
5f3cd8a2 VZ |
532 | Reads a long value from the key and returns it. {\it defaultVal} is returned |
533 | if the key is not found. | |
c4afa2cb VZ |
534 | |
535 | NB: writing | |
052ae0e5 | 536 | |
5f3cd8a2 | 537 | {\small \begin{verbatim} conf->Read("key", 0); \end{verbatim} } |
052ae0e5 | 538 | |
5f3cd8a2 VZ |
539 | won't work because the call is ambiguous: compiler can not choose between two |
540 | {\it Read} functions. Instead, write: | |
052ae0e5 | 541 | |
5f3cd8a2 | 542 | {\small \begin{verbatim} conf->Read("key", 0l); \end{verbatim} } |
c4afa2cb | 543 | |
052ae0e5 | 544 | \constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}} |
c4afa2cb | 545 | |
5f3cd8a2 VZ |
546 | Reads a double value, returning TRUE if the value was found. If the value was |
547 | not found, {\it d} is not changed. | |
c4afa2cb | 548 | |
5f3cd8a2 VZ |
549 | \constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}, |
550 | \param{double}{ defaultVal}} | |
b8de493f | 551 | |
5f3cd8a2 VZ |
552 | Reads a double value, returning TRUE if the value was found. If the value was |
553 | not found, {\it defaultVal} is used instead. | |
b8de493f | 554 | |
052ae0e5 | 555 | \constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}} |
c4afa2cb | 556 | |
5f3cd8a2 VZ |
557 | Reads a bool value, returning TRUE if the value was found. If the value was |
558 | not found, {\it b} is not changed. | |
b8de493f | 559 | |
5f3cd8a2 VZ |
560 | \constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d}, |
561 | \param{bool}{ defaultVal}} | |
c4afa2cb | 562 | |
5f3cd8a2 VZ |
563 | Reads a bool value, returning TRUE if the value was found. If the value was |
564 | not found, {\it defaultVal} is used instead. | |
c4afa2cb | 565 | |
052ae0e5 | 566 | \membersection{wxConfigBase::Set}\label{wxconfigbaseset} |
c4afa2cb | 567 | |
052ae0e5 | 568 | \func{wxConfigBase *}{Set}{\param{wxConfigBase *}{pConfig}} |
c4afa2cb | 569 | |
052ae0e5 JS |
570 | Sets the config object as the current one, returns the pointer to the previous |
571 | current object (both the parameter and returned value may be NULL) | |
c4afa2cb | 572 | |
052ae0e5 | 573 | \membersection{wxConfigBase::SetAppName}\label{wxconfigbasesetappname} |
c4afa2cb | 574 | |
052ae0e5 | 575 | \func{void }{SetAppName}{\param{const wxString\&}{ appName}} |
b8de493f | 576 | |
052ae0e5 | 577 | Sets the application name. |
c4afa2cb | 578 | |
052ae0e5 | 579 | \membersection{wxConfigBase::SetExpandingEnvVars}\label{wxconfigbasesetexpandingenvvars} |
c4afa2cb | 580 | |
052ae0e5 | 581 | \func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = TRUE}} |
b8de493f | 582 | |
052ae0e5 | 583 | Determine whether we wish to expand environment variables in key values. |
c4afa2cb | 584 | |
052ae0e5 | 585 | \membersection{wxConfigBase::SetPath}\label{wxconfigbasesetpath} |
c4afa2cb | 586 | |
052ae0e5 | 587 | \func{void}{SetPath}{\param{const wxString\& }{strPath}} |
c4afa2cb | 588 | |
052ae0e5 | 589 | Set current path: if the first character is '/', it's the absolute path, |
5f3cd8a2 VZ |
590 | otherwise it's a relative path. '..' is supported. If the strPath doesn't |
591 | exist it is created. | |
c4afa2cb | 592 | |
052ae0e5 | 593 | \membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults} |
c4afa2cb | 594 | |
052ae0e5 JS |
595 | \func{void}{SetRecordDefaults}{\param{bool }{bDoIt = TRUE}} |
596 | ||
597 | Sets whether defaults are written back to the config file. | |
c4afa2cb | 598 | |
5f3cd8a2 VZ |
599 | If on (default is off) all default values are written back to the config file. |
600 | This allows the user to see what config options may be changed and is probably | |
601 | useful only for wxFileConfig. | |
c4afa2cb | 602 | |
052ae0e5 | 603 | \membersection{wxConfigBase::SetVendorName}\label{wxconfigbasesetvendorname} |
b8de493f | 604 | |
052ae0e5 | 605 | \func{void}{SetVendorName}{\param{const wxString\&}{ vendorName}} |
b8de493f | 606 | |
052ae0e5 | 607 | Sets the vendor name. |
b8de493f | 608 | |
052ae0e5 JS |
609 | \membersection{wxConfigBase::Write}\label{wxconfigbasewrite} |
610 | ||
5f3cd8a2 VZ |
611 | \func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{ |
612 | value}} | |
052ae0e5 JS |
613 | |
614 | \func{bool}{Write}{\param{const wxString\& }{ key}, \param{long}{ value}} | |
615 | ||
616 | \func{bool}{Write}{\param{const wxString\& }{ key}, \param{double}{ value}} | |
617 | ||
618 | \func{bool}{Write}{\param{const wxString\& }{ key}, \param{bool}{ value}} | |
619 | ||
5f3cd8a2 VZ |
620 | These functions write the specified value to the config file and return TRUE |
621 | on success. | |
c4afa2cb | 622 | |
c4afa2cb | 623 |