Empty container and design description for native PalmOS wxPrefConfig. Remove MSW configs from PalmOS.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31188 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -228,7 +228,6 @@ SOURCES = ../../samples/minimal/minimal.cpp \
|
|||||||
../../src/palmos/help.cpp \
|
../../src/palmos/help.cpp \
|
||||||
../../src/palmos/icon.cpp \
|
../../src/palmos/icon.cpp \
|
||||||
../../src/palmos/imaglist.cpp \
|
../../src/palmos/imaglist.cpp \
|
||||||
../../src/palmos/iniconf.cpp \
|
|
||||||
../../src/palmos/joystick.cpp \
|
../../src/palmos/joystick.cpp \
|
||||||
../../src/palmos/listbox.cpp \
|
../../src/palmos/listbox.cpp \
|
||||||
../../src/palmos/listctrl.cpp \
|
../../src/palmos/listctrl.cpp \
|
||||||
@@ -245,11 +244,11 @@ SOURCES = ../../samples/minimal/minimal.cpp \
|
|||||||
../../src/palmos/palette.cpp \
|
../../src/palmos/palette.cpp \
|
||||||
../../src/palmos/pen.cpp \
|
../../src/palmos/pen.cpp \
|
||||||
../../src/palmos/popupwin.cpp \
|
../../src/palmos/popupwin.cpp \
|
||||||
|
../../src/palmos/prefconf.cpp \
|
||||||
../../src/palmos/printdlg.cpp \
|
../../src/palmos/printdlg.cpp \
|
||||||
../../src/palmos/printpalm.cpp \
|
../../src/palmos/printpalm.cpp \
|
||||||
../../src/palmos/radiobox.cpp \
|
../../src/palmos/radiobox.cpp \
|
||||||
../../src/palmos/radiobut.cpp \
|
../../src/palmos/radiobut.cpp \
|
||||||
../../src/palmos/regconf.cpp \
|
|
||||||
../../src/palmos/region.cpp \
|
../../src/palmos/region.cpp \
|
||||||
../../src/palmos/scrolbar.cpp \
|
../../src/palmos/scrolbar.cpp \
|
||||||
../../src/palmos/settings.cpp \
|
../../src/palmos/settings.cpp \
|
||||||
|
@@ -96,6 +96,7 @@ wxPalmOS:
|
|||||||
- polishing of the port (unnecessary 2.4 API compatibility, removed
|
- polishing of the port (unnecessary 2.4 API compatibility, removed
|
||||||
all wxMSW specific code which was base for the new port)
|
all wxMSW specific code which was base for the new port)
|
||||||
- enumeration of available volumes
|
- enumeration of available volumes
|
||||||
|
- native wxPrefConfig around Preferences database
|
||||||
|
|
||||||
|
|
||||||
2.5.3
|
2.5.3
|
||||||
|
@@ -4,11 +4,13 @@
|
|||||||
#include "wx/confbase.h"
|
#include "wx/confbase.h"
|
||||||
|
|
||||||
#if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
|
#if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
|
||||||
# ifdef __WIN32__
|
# ifdef __WIN32__
|
||||||
# include "wx/msw/regconf.h"
|
# include "wx/msw/regconf.h"
|
||||||
#else
|
# else
|
||||||
# include "wx/msw/iniconf.h"
|
# include "wx/msw/iniconf.h"
|
||||||
# endif
|
# endif
|
||||||
|
#elif defined(__WXPALMOS__) && wxUSE_CONFIG_NATIVE
|
||||||
|
# include "wx/palmos/prefconf.h"
|
||||||
#else
|
#else
|
||||||
# include "wx/fileconf.h"
|
# include "wx/fileconf.h"
|
||||||
#endif
|
#endif
|
||||||
|
@@ -18,6 +18,11 @@
|
|||||||
#error "wxPalmOS port was introduced after 2.4.X"
|
#error "wxPalmOS port was introduced after 2.4.X"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef wxUSE_FILECONFIG
|
||||||
|
#undef wxUSE_FILECONFIG
|
||||||
|
#endif
|
||||||
|
#define wxUSE_FILECONFIG 0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* disable the settings which don't work for some compilers
|
* disable the settings which don't work for some compilers
|
||||||
*/
|
*/
|
||||||
|
@@ -1,95 +0,0 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: include/wx/palmos/iniconf.h
|
|
||||||
// Purpose: INI-file based wxConfigBase implementation
|
|
||||||
// Author: William Osborne
|
|
||||||
// Modified by:
|
|
||||||
// Created: 10/13/04
|
|
||||||
// RCS-ID: $Id:
|
|
||||||
// Copyright: (c) William Osborne
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _INICONF_H
|
|
||||||
#define _INICONF_H
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxIniConfig is a wxConfig implementation which uses MS Windows INI files to
|
|
||||||
// store the data. Because INI files don't really support arbitrary nesting of
|
|
||||||
// groups, we do the following:
|
|
||||||
// (1) in win.ini file we store all entries in the [vendor] section and
|
|
||||||
// the value group1/group2/key is mapped to the value group1_group2_key
|
|
||||||
// in this section, i.e. all path separators are replaced with underscore
|
|
||||||
// (2) in appname.ini file we map group1/group2/group3/key to the entry
|
|
||||||
// group2_group3_key in [group1]
|
|
||||||
//
|
|
||||||
// Of course, it might lead to indesirable results if '_' is also used in key
|
|
||||||
// names (i.e. group/key is the same as group_key) and also GetPath() result
|
|
||||||
// may be not what you would expect it to be.
|
|
||||||
//
|
|
||||||
// Another limitation: the keys and section names are never case-sensitive
|
|
||||||
// which might differ from wxFileConfig it it was compiled with
|
|
||||||
// wxCONFIG_CASE_SENSITIVE option.
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// for this class, "local" file is the file appname.ini and the global file
|
|
||||||
// is the [vendor] subsection of win.ini (default for "vendor" is to be the
|
|
||||||
// same as appname). The file name (strAppName parameter) may, in fact,
|
|
||||||
// contain the full path to the file. If it doesn't, the file is searched for
|
|
||||||
// in the Windows directory.
|
|
||||||
class WXDLLEXPORT wxIniConfig : public wxConfigBase
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// ctor & dtor
|
|
||||||
// if strAppName doesn't contain the extension and is not an absolute path,
|
|
||||||
// ".ini" is appended to it. if strVendor is empty, it's taken to be the
|
|
||||||
// same as strAppName.
|
|
||||||
wxIniConfig(const wxString& strAppName = wxEmptyString, const wxString& strVendor = wxEmptyString,
|
|
||||||
const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString, long style = wxCONFIG_USE_LOCAL_FILE);
|
|
||||||
virtual ~wxIniConfig();
|
|
||||||
|
|
||||||
// implement inherited pure virtual functions
|
|
||||||
virtual void SetPath(const wxString& strPath);
|
|
||||||
virtual const wxString& GetPath() const;
|
|
||||||
|
|
||||||
virtual bool GetFirstGroup(wxString& str, long& lIndex) const;
|
|
||||||
virtual bool GetNextGroup (wxString& str, long& lIndex) const;
|
|
||||||
virtual bool GetFirstEntry(wxString& str, long& lIndex) const;
|
|
||||||
virtual bool GetNextEntry (wxString& str, long& lIndex) const;
|
|
||||||
|
|
||||||
virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const;
|
|
||||||
virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const;
|
|
||||||
|
|
||||||
virtual bool HasGroup(const wxString& strName) const;
|
|
||||||
virtual bool HasEntry(const wxString& strName) const;
|
|
||||||
|
|
||||||
// return TRUE if the current group is empty
|
|
||||||
bool IsEmpty() const;
|
|
||||||
|
|
||||||
virtual bool Flush(bool bCurrentOnly = FALSE);
|
|
||||||
|
|
||||||
virtual bool RenameEntry(const wxString& oldName, const wxString& newName);
|
|
||||||
virtual bool RenameGroup(const wxString& oldName, const wxString& newName);
|
|
||||||
|
|
||||||
virtual bool DeleteEntry(const wxString& Key, bool bGroupIfEmptyAlso = TRUE);
|
|
||||||
virtual bool DeleteGroup(const wxString& szKey);
|
|
||||||
virtual bool DeleteAll();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// read/write
|
|
||||||
bool DoReadString(const wxString& key, wxString *pStr) const;
|
|
||||||
bool DoReadLong(const wxString& key, long *plResult) const;
|
|
||||||
|
|
||||||
bool DoWriteString(const wxString& key, const wxString& szValue);
|
|
||||||
bool DoWriteLong(const wxString& key, long lValue);
|
|
||||||
|
|
||||||
private:
|
|
||||||
// helpers
|
|
||||||
wxString GetPrivateKeyName(const wxString& szKey) const;
|
|
||||||
wxString GetKeyName(const wxString& szKey) const;
|
|
||||||
|
|
||||||
wxString m_strLocalFilename; // name of the private INI file
|
|
||||||
wxString m_strGroup, // current group in appname.ini file
|
|
||||||
m_strPath; // the rest of the path (no trailing '_'!)
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //_INICONF_H
|
|
@@ -1,43 +1,37 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: palmos/regconf.h
|
// Name: wx/palmos/prefconf.h
|
||||||
// Purpose: Registry based implementation of wxConfigBase
|
// Purpose: wxPrefConfig interface
|
||||||
// Author: William Osborne
|
// Author: Wlodzimierz ABX Skiba
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 10/13/04
|
// Created: 28.12.2004
|
||||||
// RCS-ID: $Id:
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) William Osborne
|
// Copyright: (c) Wlodzimierz Skiba
|
||||||
// Licence: wxWindows licence
|
// License: wxWindows licence
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef _REGCONF_H
|
#ifndef _PREFCONF_H_
|
||||||
#define _REGCONF_H
|
#define _PREFCONF_H_
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
#pragma interface "regconf.h"
|
#pragma interface "prefconf.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef _REGISTRY_H
|
|
||||||
#include "wx/palmos/registry.h"
|
|
||||||
#endif
|
|
||||||
#include "wx/object.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxRegConfig
|
// wxPrefConfig
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
class WXDLLIMPEXP_BASE wxRegConfig : public wxConfigBase
|
class WXDLLIMPEXP_BASE wxPrefConfig : public wxConfigBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// ctor & dtor
|
// ctor & dtor
|
||||||
// will store data in HKLM\appName and HKCU\appName
|
wxPrefConfig(const wxString& appName = wxEmptyString,
|
||||||
wxRegConfig(const wxString& appName = wxEmptyString,
|
const wxString& vendorName = wxEmptyString,
|
||||||
const wxString& vendorName = wxEmptyString,
|
const wxString& localFilename = wxEmptyString,
|
||||||
const wxString& localFilename = wxEmptyString,
|
const wxString& globalFilename = wxEmptyString,
|
||||||
const wxString& globalFilename = wxEmptyString,
|
long style = wxCONFIG_USE_GLOBAL_FILE);
|
||||||
long style = wxCONFIG_USE_GLOBAL_FILE);
|
|
||||||
|
|
||||||
// dtor will save unsaved data
|
// dtor will save unsaved data
|
||||||
virtual ~wxRegConfig();
|
virtual ~wxPrefConfig(){}
|
||||||
|
|
||||||
// implement inherited pure virtual functions
|
// implement inherited pure virtual functions
|
||||||
// ------------------------------------------
|
// ------------------------------------------
|
||||||
@@ -47,48 +41,33 @@ public:
|
|||||||
virtual const wxString& GetPath() const { return m_strPath; }
|
virtual const wxString& GetPath() const { return m_strPath; }
|
||||||
|
|
||||||
// entry/subgroup info
|
// entry/subgroup info
|
||||||
// enumerate all of them
|
|
||||||
virtual bool GetFirstGroup(wxString& str, long& lIndex) const;
|
virtual bool GetFirstGroup(wxString& str, long& lIndex) const;
|
||||||
virtual bool GetNextGroup (wxString& str, long& lIndex) const;
|
virtual bool GetNextGroup (wxString& str, long& lIndex) const;
|
||||||
virtual bool GetFirstEntry(wxString& str, long& lIndex) const;
|
virtual bool GetFirstEntry(wxString& str, long& lIndex) const;
|
||||||
virtual bool GetNextEntry (wxString& str, long& lIndex) const;
|
virtual bool GetNextEntry (wxString& str, long& lIndex) const;
|
||||||
|
|
||||||
// tests for existence
|
// tests for existence
|
||||||
virtual bool HasGroup(const wxString& strName) const;
|
virtual bool HasGroup(const wxString& strName) const;
|
||||||
virtual bool HasEntry(const wxString& strName) const;
|
virtual bool HasEntry(const wxString& strName) const;
|
||||||
virtual EntryType GetEntryType(const wxString& name) const;
|
virtual EntryType GetEntryType(const wxString& name) const;
|
||||||
|
|
||||||
// get number of entries/subgroups in the current group, with or without
|
// get number of entries/subgroups in the current group, with or without
|
||||||
// it's subgroups
|
// it's subgroups
|
||||||
virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const;
|
virtual size_t GetNumberOfEntries(bool bRecursive = false) const;
|
||||||
virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const;
|
virtual size_t GetNumberOfGroups(bool bRecursive = false) const;
|
||||||
|
|
||||||
virtual bool Flush(bool WXUNUSED(bCurrentOnly) = FALSE) { return TRUE; }
|
virtual bool Flush(bool WXUNUSED(bCurrentOnly) = false) { return true; }
|
||||||
|
|
||||||
// rename
|
// rename
|
||||||
virtual bool RenameEntry(const wxString& oldName, const wxString& newName);
|
virtual bool RenameEntry(const wxString& oldName, const wxString& newName);
|
||||||
virtual bool RenameGroup(const wxString& oldName, const wxString& newName);
|
virtual bool RenameGroup(const wxString& oldName, const wxString& newName);
|
||||||
|
|
||||||
// delete
|
// delete
|
||||||
virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso = TRUE);
|
virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso = true);
|
||||||
virtual bool DeleteGroup(const wxString& key);
|
virtual bool DeleteGroup(const wxString& key);
|
||||||
virtual bool DeleteAll();
|
virtual bool DeleteAll();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// opens the local key creating it if necessary and returns it
|
|
||||||
wxRegKey& LocalKey() const // must be const to be callable from const funcs
|
|
||||||
{
|
|
||||||
wxRegConfig* self = wxConstCast(this, wxRegConfig);
|
|
||||||
|
|
||||||
if ( !m_keyLocal.IsOpened() )
|
|
||||||
{
|
|
||||||
// create on demand
|
|
||||||
self->m_keyLocal.Create();
|
|
||||||
}
|
|
||||||
|
|
||||||
return self->m_keyLocal;
|
|
||||||
}
|
|
||||||
|
|
||||||
// implement read/write methods
|
// implement read/write methods
|
||||||
virtual bool DoReadString(const wxString& key, wxString *pStr) const;
|
virtual bool DoReadString(const wxString& key, wxString *pStr) const;
|
||||||
virtual bool DoReadLong(const wxString& key, long *plResult) const;
|
virtual bool DoReadLong(const wxString& key, long *plResult) const;
|
||||||
@@ -98,15 +77,18 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
// no copy ctor/assignment operator
|
// no copy ctor/assignment operator
|
||||||
wxRegConfig(const wxRegConfig&);
|
wxPrefConfig(const wxPrefConfig&);
|
||||||
wxRegConfig& operator=(const wxRegConfig&);
|
wxPrefConfig& operator=(const wxPrefConfig&);
|
||||||
|
|
||||||
// these keys are opened during all lifetime of wxRegConfig object
|
|
||||||
wxRegKey m_keyLocalRoot, m_keyLocal,
|
|
||||||
m_keyGlobalRoot, m_keyGlobal;
|
|
||||||
|
|
||||||
// current path (not '/' terminated)
|
// current path (not '/' terminated)
|
||||||
wxString m_strPath;
|
wxString m_strPath;
|
||||||
|
|
||||||
|
// current path (group) content (cache for read/write)
|
||||||
|
wxString m_strGroup;
|
||||||
|
|
||||||
|
// current group modified ?
|
||||||
|
bool m_modGroup;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //_REGCONF_H
|
#endif // _PREFCONF_H_
|
||||||
|
|
@@ -1,209 +0,0 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: palmos/registry.h
|
|
||||||
// Purpose: Registry classes and functions
|
|
||||||
// Author: William Osborne
|
|
||||||
// Modified by:
|
|
||||||
// Created: 10/13/04
|
|
||||||
// RCS-ID: $Id:
|
|
||||||
// Copyright: (c) William Osborne
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _REGISTRY_H
|
|
||||||
#define _REGISTRY_H
|
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
||||||
#pragma interface "registry.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// types used in this module
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
/*
|
|
||||||
#ifndef HKEY_DEFINED
|
|
||||||
#define HKEY_DEFINED
|
|
||||||
#define HKEY unsigned long
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef unsigned long ulong;
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// class wxRegKey encapsulates window HKEY handle
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
class WXDLLIMPEXP_BASE wxRegKey
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// NB: do _not_ change the values of elements in these enumerations!
|
|
||||||
|
|
||||||
// registry value types (with comments from winnt.h)
|
|
||||||
enum ValueType
|
|
||||||
{
|
|
||||||
Type_None, // No value type
|
|
||||||
Type_String, // Unicode nul terminated string
|
|
||||||
};
|
|
||||||
|
|
||||||
// predefined registry keys
|
|
||||||
enum StdKey
|
|
||||||
{
|
|
||||||
HKCR // classes root
|
|
||||||
};
|
|
||||||
|
|
||||||
// access mode for the key
|
|
||||||
enum AccessMode
|
|
||||||
{
|
|
||||||
Read, // read-only
|
|
||||||
Write // read and write
|
|
||||||
};
|
|
||||||
|
|
||||||
// information about standard (predefined) registry keys
|
|
||||||
// number of standard keys
|
|
||||||
static const size_t nStdKeys;
|
|
||||||
// get the name of a standard key
|
|
||||||
static const wxChar *GetStdKeyName(size_t key);
|
|
||||||
// get the short name of a standard key
|
|
||||||
static const wxChar *GetStdKeyShortName(size_t key);
|
|
||||||
// get StdKey from root HKEY
|
|
||||||
static StdKey GetStdKeyFromHkey(WXHKEY hkey);
|
|
||||||
|
|
||||||
// extacts the std key prefix from the string (return value) and
|
|
||||||
// leaves only the part after it (i.e. modifies the string passed!)
|
|
||||||
static StdKey ExtractKeyName(wxString& str);
|
|
||||||
|
|
||||||
// ctors
|
|
||||||
// root key is set to HKCR (the only root key under Win16)
|
|
||||||
wxRegKey();
|
|
||||||
// strKey is the full name of the key (i.e. starting with HKEY_xxx...)
|
|
||||||
wxRegKey(const wxString& strKey);
|
|
||||||
// strKey is the name of key under (standard key) keyParent
|
|
||||||
wxRegKey(StdKey keyParent, const wxString& strKey);
|
|
||||||
// strKey is the name of key under (previously created) keyParent
|
|
||||||
wxRegKey(const wxRegKey& keyParent, const wxString& strKey);
|
|
||||||
// dtor closes the key
|
|
||||||
~wxRegKey();
|
|
||||||
|
|
||||||
// change key (closes the previously opened key if any)
|
|
||||||
// the name is absolute, i.e. should start with HKEY_xxx
|
|
||||||
void SetName(const wxString& strKey);
|
|
||||||
// the name is relative to the parent key
|
|
||||||
void SetName(StdKey keyParent, const wxString& strKey);
|
|
||||||
// the name is relative to the parent key
|
|
||||||
void SetName(const wxRegKey& keyParent, const wxString& strKey);
|
|
||||||
// hKey should be opened and will be closed in wxRegKey dtor
|
|
||||||
void SetHkey(WXHKEY hKey);
|
|
||||||
|
|
||||||
// get infomation about the key
|
|
||||||
// get the (full) key name. Abbreviate std root keys if bShortPrefix.
|
|
||||||
wxString GetName(bool bShortPrefix = true) const;
|
|
||||||
// return true if the key exists
|
|
||||||
bool Exists() const;
|
|
||||||
// get the info about key (any number of these pointers may be NULL)
|
|
||||||
bool GetKeyInfo(size_t *pnSubKeys, // number of subkeys
|
|
||||||
size_t *pnMaxKeyLen, // max len of subkey name
|
|
||||||
size_t *pnValues, // number of values
|
|
||||||
size_t *pnMaxValueLen) const;
|
|
||||||
// return true if the key is opened
|
|
||||||
bool IsOpened() const { return m_hKey != 0; }
|
|
||||||
// for "if ( !key ) wxLogError(...)" kind of expressions
|
|
||||||
operator bool() const { return m_dwLastError == 0; }
|
|
||||||
|
|
||||||
// operations on the key itself
|
|
||||||
// explicitly open the key (will be automatically done by all functions
|
|
||||||
// which need the key to be opened if the key is not opened yet)
|
|
||||||
bool Open(AccessMode mode = Write);
|
|
||||||
// create the key: will fail if the key already exists and !bOkIfExists
|
|
||||||
bool Create(bool bOkIfExists = true);
|
|
||||||
// rename a value from old name to new one
|
|
||||||
bool RenameValue(const wxChar *szValueOld, const wxChar *szValueNew);
|
|
||||||
// rename the key
|
|
||||||
bool Rename(const wxChar *szNewName);
|
|
||||||
// copy value to another key possibly changing its name (by default it will
|
|
||||||
// remain the same)
|
|
||||||
bool CopyValue(const wxChar *szValue, wxRegKey& keyDst,
|
|
||||||
const wxChar *szNewName = NULL);
|
|
||||||
// copy the entire contents of the key recursively to another location
|
|
||||||
bool Copy(const wxChar *szNewName);
|
|
||||||
// same as Copy() but using a key and not the name
|
|
||||||
bool Copy(wxRegKey& keyDst);
|
|
||||||
// close the key (will be automatically done in dtor)
|
|
||||||
bool Close();
|
|
||||||
|
|
||||||
// deleting keys/values
|
|
||||||
// deletes this key and all of it's subkeys/values
|
|
||||||
bool DeleteSelf();
|
|
||||||
// deletes the subkey with all of it's subkeys/values recursively
|
|
||||||
bool DeleteKey(const wxChar *szKey);
|
|
||||||
// deletes the named value (may be NULL to remove the default value)
|
|
||||||
bool DeleteValue(const wxChar *szValue);
|
|
||||||
|
|
||||||
// access to values and subkeys
|
|
||||||
// get value type
|
|
||||||
ValueType GetValueType(const wxChar *szValue) const;
|
|
||||||
// returns true if the value contains a number (else it's some string)
|
|
||||||
bool IsNumericValue(const wxChar *szValue) const;
|
|
||||||
|
|
||||||
// assignment operators set the default value of the key
|
|
||||||
wxRegKey& operator=(const wxString& strValue)
|
|
||||||
{ SetValue(NULL, strValue); return *this; }
|
|
||||||
|
|
||||||
// query the default value of the key: implicitly or explicitly
|
|
||||||
wxString QueryDefaultValue() const;
|
|
||||||
operator wxString() const { return QueryDefaultValue(); }
|
|
||||||
|
|
||||||
// named values
|
|
||||||
|
|
||||||
// set the string value
|
|
||||||
bool SetValue(const wxChar *szValue, const wxString& strValue);
|
|
||||||
// retrieve the string value
|
|
||||||
bool QueryValue(const wxChar *szValue, wxString& strValue) const
|
|
||||||
{ return QueryValue(szValue, strValue, false); }
|
|
||||||
// retrieve raw string value
|
|
||||||
bool QueryRawValue(const wxChar *szValue, wxString& strValue) const
|
|
||||||
{ return QueryValue(szValue, strValue, true); }
|
|
||||||
// retrieve either raw or expanded string value
|
|
||||||
bool QueryValue(const wxChar *szValue, wxString& strValue, bool raw) const;
|
|
||||||
|
|
||||||
// query existence of a key/value
|
|
||||||
// return true if value exists
|
|
||||||
bool HasValue(const wxChar *szKey) const;
|
|
||||||
// return true if given subkey exists
|
|
||||||
bool HasSubKey(const wxChar *szKey) const;
|
|
||||||
// return true if any subkeys exist
|
|
||||||
bool HasSubkeys() const;
|
|
||||||
// return true if any values exist
|
|
||||||
bool HasValues() const;
|
|
||||||
// return true if the key is empty (nothing under this key)
|
|
||||||
bool IsEmpty() const { return !HasSubkeys() && !HasValues(); }
|
|
||||||
|
|
||||||
// enumerate values and subkeys
|
|
||||||
bool GetFirstValue(wxString& strValueName, long& lIndex);
|
|
||||||
bool GetNextValue (wxString& strValueName, long& lIndex) const;
|
|
||||||
|
|
||||||
bool GetFirstKey (wxString& strKeyName , long& lIndex);
|
|
||||||
bool GetNextKey (wxString& strKeyName , long& lIndex) const;
|
|
||||||
|
|
||||||
// for wxRegConfig usage only: preallocate some memory for the name
|
|
||||||
void ReserveMemoryForName(size_t bytes) { m_strKey.reserve(bytes); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
// common part of all ctors
|
|
||||||
void Init()
|
|
||||||
{
|
|
||||||
m_hKey = (WXHKEY) NULL;
|
|
||||||
m_dwLastError = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// no copy ctor/assignment operator
|
|
||||||
wxRegKey(const wxRegKey& key); // not implemented
|
|
||||||
wxRegKey& operator=(const wxRegKey& key); // not implemented
|
|
||||||
|
|
||||||
WXHKEY m_hKey, // our handle
|
|
||||||
m_hRootKey; // handle of the top key (i.e. StdKey)
|
|
||||||
wxString m_strKey; // key name (relative to m_hRootKey)
|
|
||||||
|
|
||||||
long m_dwLastError; // last error (0 if none)
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif //_REGISTRY_H
|
|
||||||
|
|
@@ -335,7 +335,7 @@
|
|||||||
// See also wxUSE_CONFIG_NATIVE below.
|
// See also wxUSE_CONFIG_NATIVE below.
|
||||||
//
|
//
|
||||||
// Recommended setting: 1
|
// Recommended setting: 1
|
||||||
#define wxUSE_CONFIG 0
|
#define wxUSE_CONFIG 1
|
||||||
|
|
||||||
// If wxUSE_CONFIG is 1, you may choose to use either the native config
|
// If wxUSE_CONFIG is 1, you may choose to use either the native config
|
||||||
// classes under Windows (using .INI files under Win16 and the registry under
|
// classes under Windows (using .INI files under Win16 and the registry under
|
||||||
@@ -348,7 +348,7 @@
|
|||||||
// not wxFileConfig.
|
// not wxFileConfig.
|
||||||
//
|
//
|
||||||
// Recommended setting: 1
|
// Recommended setting: 1
|
||||||
#define wxUSE_CONFIG_NATIVE 0
|
#define wxUSE_CONFIG_NATIVE 1
|
||||||
|
|
||||||
// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
|
// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
|
||||||
// to connect/disconnect from the network and be notified whenever the dial-up
|
// to connect/disconnect from the network and be notified whenever the dial-up
|
||||||
@@ -928,7 +928,7 @@
|
|||||||
// that use the connection) should support forward only scrolling of cursors,
|
// that use the connection) should support forward only scrolling of cursors,
|
||||||
// or both forward and backward support for backward scrolling cursors is
|
// or both forward and backward support for backward scrolling cursors is
|
||||||
// dependent on the data source as well as the ODBC driver being used.
|
// dependent on the data source as well as the ODBC driver being used.
|
||||||
#define wxODBC_FWD_ONLY_CURSORS 0
|
#define wxODBC_FWD_ONLY_CURSORS 0
|
||||||
|
|
||||||
// Default is 0. Set to 1 to use the deprecated classes, enum types, function,
|
// Default is 0. Set to 1 to use the deprecated classes, enum types, function,
|
||||||
// member variables. With a setting of 1, full backward compatability with the
|
// member variables. With a setting of 1, full backward compatability with the
|
||||||
|
@@ -91,6 +91,8 @@ wxConfigBase *wxConfigBase::Create()
|
|||||||
ms_pConfig =
|
ms_pConfig =
|
||||||
#if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
|
#if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE
|
||||||
new wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName());
|
new wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName());
|
||||||
|
#elif defined(__WXPALMOS__) && wxUSE_CONFIG_NATIVE
|
||||||
|
new wxPrefConfig(wxTheApp->GetAppName());
|
||||||
#else // either we're under Unix or wish to use files even under Windows
|
#else // either we're under Unix or wish to use files even under Windows
|
||||||
new wxFileConfig(wxTheApp->GetAppName());
|
new wxFileConfig(wxTheApp->GetAppName());
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1,220 +0,0 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: src/palmos/iniconf.cpp
|
|
||||||
// Purpose: implementation of wxIniConfig class
|
|
||||||
// Author: William Osborne
|
|
||||||
// Modified by:
|
|
||||||
// Created: 10/13/04
|
|
||||||
// RCS-ID: $Id:
|
|
||||||
// Copyright: (c) William Osborne
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
||||||
#pragma implementation "iniconf.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// For compilers that support precompilation, includes "wx.h".
|
|
||||||
#include "wx/wxprec.h"
|
|
||||||
|
|
||||||
#ifdef __BORLANDC__
|
|
||||||
#pragma hdrstop
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/intl.h"
|
|
||||||
#include "wx/event.h"
|
|
||||||
#include "wx/app.h"
|
|
||||||
#include "wx/utils.h"
|
|
||||||
#endif //WX_PRECOMP
|
|
||||||
|
|
||||||
// Doesn't yet compile in Unicode mode
|
|
||||||
|
|
||||||
#if wxUSE_CONFIG && !wxUSE_UNICODE
|
|
||||||
|
|
||||||
#include "wx/dynarray.h"
|
|
||||||
#include "wx/log.h"
|
|
||||||
#include "wx/config.h"
|
|
||||||
#include "wx/file.h"
|
|
||||||
|
|
||||||
#include "wx/palmos/iniconf.h"
|
|
||||||
|
|
||||||
#include "wx/palmos/wrapwin.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// constants
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// we replace all path separators with this character
|
|
||||||
#define PATH_SEP_REPLACE '_'
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// implementation
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// ctor & dtor
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wxIniConfig::wxIniConfig(const wxString& strAppName,
|
|
||||||
const wxString& strVendor,
|
|
||||||
const wxString& localFilename,
|
|
||||||
const wxString& globalFilename,
|
|
||||||
long style)
|
|
||||||
: wxConfigBase(strAppName, strVendor, localFilename, globalFilename, style)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxIniConfig::~wxIniConfig()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// path management
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void wxIniConfig::SetPath(const wxString& strPath)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
const wxString& wxIniConfig::GetPath() const
|
|
||||||
{
|
|
||||||
static wxString s_str;
|
|
||||||
|
|
||||||
return s_str;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString wxIniConfig::GetPrivateKeyName(const wxString& szKey) const
|
|
||||||
{
|
|
||||||
wxString strKey;
|
|
||||||
|
|
||||||
return strKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString wxIniConfig::GetKeyName(const wxString& szKey) const
|
|
||||||
{
|
|
||||||
wxString strKey;
|
|
||||||
|
|
||||||
return strKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// enumeration
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxIniConfig::GetFirstGroup(wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::GetNextGroup (wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::GetFirstEntry(wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::GetNextEntry (wxString& WXUNUSED(str), long& WXUNUSED(lIndex)) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// misc info
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
size_t wxIniConfig::GetNumberOfEntries(bool WXUNUSED(bRecursive)) const
|
|
||||||
{
|
|
||||||
return (size_t)-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t wxIniConfig::GetNumberOfGroups(bool WXUNUSED(bRecursive)) const
|
|
||||||
{
|
|
||||||
return (size_t)-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::HasGroup(const wxString& WXUNUSED(strName)) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::HasEntry(const wxString& WXUNUSED(strName)) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// is current group empty?
|
|
||||||
bool wxIniConfig::IsEmpty() const
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// read/write
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxIniConfig::DoReadString(const wxString& szKey, wxString *pstr) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::DoReadLong(const wxString& szKey, long *pl) const
|
|
||||||
{
|
|
||||||
return FALSE ;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::DoWriteString(const wxString& szKey, const wxString& szValue)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::DoWriteLong(const wxString& szKey, long lValue)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::Flush(bool /* bCurrentOnly */)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// delete
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxIniConfig::DeleteEntry(const wxString& szKey, bool bGroupIfEmptyAlso)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::DeleteGroup(const wxString& szKey)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef MAX_PATH
|
|
||||||
#define MAX_PATH 256
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool wxIniConfig::DeleteAll()
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::RenameEntry(const wxString& WXUNUSED(oldName),
|
|
||||||
const wxString& WXUNUSED(newName))
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxIniConfig::RenameGroup(const wxString& WXUNUSED(oldName),
|
|
||||||
const wxString& WXUNUSED(newName))
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// wxUSE_CONFIG && wxUSE_UNICODE
|
|
234
src/palmos/prefconf.cpp
Normal file
234
src/palmos/prefconf.cpp
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: src/palmos/prefconf.cpp
|
||||||
|
// Purpose: wxPrefConfig implementation
|
||||||
|
// Author: Wlodzimierz ABX Skiba
|
||||||
|
// Modified by:
|
||||||
|
// Created: 28.12.2004
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Wlodzimierz Skiba
|
||||||
|
// License: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
|
#pragma implementation "prefconf.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For compilers that support precompilation, includes "wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/string.h"
|
||||||
|
#endif //WX_PRECOMP
|
||||||
|
|
||||||
|
#if wxUSE_CONFIG && wxUSE_CONFIG_NATIVE
|
||||||
|
|
||||||
|
#include "wx/config.h"
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// implementation
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
http://www.palmos.com/dev/support/docs/protein_books/System_Management/PreferenceConcepts.html
|
||||||
|
|
||||||
|
This wxPrefConfig class is a wxConfig wrapper around PalmOS Preferences
|
||||||
|
functionality. Preferences allow to write any structure into its database so
|
||||||
|
wxPrefConfig writes there all entries of single group into one Preference.
|
||||||
|
To optimize read/write operations value of preference is cached. Cache is filled
|
||||||
|
after each change of the path (including using path to group names in all
|
||||||
|
operations) and it is flushed on destructor, any path change on or purpose
|
||||||
|
with Flush().
|
||||||
|
|
||||||
|
Meaning of styles:
|
||||||
|
|
||||||
|
wxCONFIG_USE_LOCAL_FILE => store config in "saved" preferences database
|
||||||
|
(not to be backed up during a HotSync operation)
|
||||||
|
wxCONFIG_USE_GLOBAL_FILE => store config in "unsaved" preferences database
|
||||||
|
(backed up during a HotSync operation)
|
||||||
|
|
||||||
|
|
||||||
|
Each Preference is an array of chars. First unsigned char describes
|
||||||
|
number N of chars used for Preference size. Next N chars (string) contains
|
||||||
|
length of rest of Preference. Preference consists in serie of entries which
|
||||||
|
should be read in loop until in reaches end of Preference.
|
||||||
|
|
||||||
|
Each entry is an set of chars with following structure:
|
||||||
|
1. name (null terminated)
|
||||||
|
2. type (single char): b,s,g,l,d (see value)
|
||||||
|
3. value
|
||||||
|
- for type="b" (bool) it os "0" or "1"
|
||||||
|
- for type="s" (string) it is null terminated set of chars
|
||||||
|
- for type="g" (subgroup) as for "s" but string is converted to
|
||||||
|
uint16_t for id parameter of ::PrefGetAppPreferences()
|
||||||
|
- for type="l" (long) as for "s" but string is converted to long
|
||||||
|
- for type="d" (double) as for "s" but string is converted to double
|
||||||
|
- otherwise it is ""
|
||||||
|
|
||||||
|
So all together first Read in group needs 3 reading from Preference:
|
||||||
|
1. take the length N of length
|
||||||
|
2. take the length M of the group content
|
||||||
|
3. take the group content
|
||||||
|
and all it is in single Preference to not overload Preferences database.
|
||||||
|
As long as each next Read/Write is performed in the same group then none
|
||||||
|
access to Preferences is performed. Flushing needs only single writing to
|
||||||
|
databease because all 3 parts of Preference can be prepared in memory.
|
||||||
|
|
||||||
|
NOTE: wxPrefConfig can read/write only its own entries. It is impossible to
|
||||||
|
know structures of Preferences of other non wxW applications.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// ctor/dtor
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
wxPrefConfig::wxPrefConfig(const wxString& appName, const wxString& vendorName,
|
||||||
|
const wxString& strLocal, const wxString& strGlobal,
|
||||||
|
long style)
|
||||||
|
: wxConfigBase(appName, vendorName, strLocal, strGlobal, style)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// path management
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void wxPrefConfig::SetPath(const wxString& strPath)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// enumeration (works only with current group)
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool wxPrefConfig::GetFirstGroup(wxString& str, long& lIndex) const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::GetNextGroup(wxString& str, long& lIndex) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::GetFirstEntry(wxString& str, long& lIndex) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::GetNextEntry(wxString& str, long& lIndex) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t wxPrefConfig::GetNumberOfEntries(bool WXUNUSED(bRecursive)) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t wxPrefConfig::GetNumberOfGroups(bool WXUNUSED(bRecursive)) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// tests for existence
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool wxPrefConfig::HasGroup(const wxString& key) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::HasEntry(const wxString& key) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxConfigBase::EntryType wxPrefConfig::GetEntryType(const wxString& key) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return wxConfigBase::Type_Unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// reading/writing
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool wxPrefConfig::DoReadString(const wxString& key, wxString *pStr) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// this exactly reproduces the string version above except for ExpandEnvVars(),
|
||||||
|
// we really should avoid this code duplication somehow...
|
||||||
|
|
||||||
|
bool wxPrefConfig::DoReadLong(const wxString& key, long *plResult) const
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::DoWriteString(const wxString& key, const wxString& szValue)
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::DoWriteLong(const wxString& key, long lValue)
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// renaming
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool wxPrefConfig::RenameEntry(const wxString& oldName, const wxString& newName)
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::RenameGroup(const wxString& oldName, const wxString& newName)
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// deleting
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
bool wxPrefConfig::DeleteEntry(const wxString& value, bool bGroupIfEmptyAlso)
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::DeleteGroup(const wxString& key)
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxPrefConfig::DeleteAll()
|
||||||
|
{
|
||||||
|
/* TODO */
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_CONFIG && wxUSE_CONFIG_NATIVE
|
@@ -1,207 +0,0 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: palmos/regconf.cpp
|
|
||||||
// Purpose:
|
|
||||||
// Author: William Osborne
|
|
||||||
// Modified by:
|
|
||||||
// Created: 10/13/04
|
|
||||||
// RCS-ID: $Id:
|
|
||||||
// Copyright: (c) William Osborne
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
||||||
#pragma implementation "regconf.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// For compilers that support precompilation, includes "wx.h".
|
|
||||||
#include "wx/wxprec.h"
|
|
||||||
|
|
||||||
#ifdef __BORLANDC__
|
|
||||||
#pragma hdrstop
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
|
||||||
#include "wx/string.h"
|
|
||||||
#include "wx/intl.h"
|
|
||||||
#endif //WX_PRECOMP
|
|
||||||
|
|
||||||
#include "wx/event.h"
|
|
||||||
#include "wx/app.h"
|
|
||||||
#include "wx/log.h"
|
|
||||||
|
|
||||||
#if wxUSE_CONFIG
|
|
||||||
|
|
||||||
#include "wx/config.h"
|
|
||||||
|
|
||||||
#include "wx/palmos/registry.h"
|
|
||||||
#include "wx/palmos/regconf.h"
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// constants
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// we put our data in HKLM\SOFTWARE_KEY\appname
|
|
||||||
#define SOFTWARE_KEY wxString(wxT("Software\\"))
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// global functions
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// get the value if the key is opened and it exists
|
|
||||||
bool TryGetValue(const wxRegKey& key, const wxString& str, wxString& strVal)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TryGetValue(const wxRegKey& key, const wxString& str, long *plVal)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ============================================================================
|
|
||||||
// implementation
|
|
||||||
// ============================================================================
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// ctor/dtor
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// create the config object which stores its data under HKCU\vendor\app and, if
|
|
||||||
// style & wxCONFIG_USE_GLOBAL_FILE, under HKLM\vendor\app
|
|
||||||
wxRegConfig::wxRegConfig(const wxString& appName, const wxString& vendorName,
|
|
||||||
const wxString& strLocal, const wxString& strGlobal,
|
|
||||||
long style)
|
|
||||||
: wxConfigBase(appName, vendorName, strLocal, strGlobal, style)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
wxRegConfig::~wxRegConfig()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// path management
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
void wxRegConfig::SetPath(const wxString& strPath)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// enumeration (works only with current group)
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#define LOCAL_MASK 0x8000
|
|
||||||
#define IS_LOCAL_INDEX(l) (((l) & LOCAL_MASK) != 0)
|
|
||||||
|
|
||||||
bool wxRegConfig::GetFirstGroup(wxString& str, long& lIndex) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::GetNextGroup(wxString& str, long& lIndex) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::GetFirstEntry(wxString& str, long& lIndex) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::GetNextEntry(wxString& str, long& lIndex) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t wxRegConfig::GetNumberOfEntries(bool WXUNUSED(bRecursive)) const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t wxRegConfig::GetNumberOfGroups(bool WXUNUSED(bRecursive)) const
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// tests for existence
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxRegConfig::HasGroup(const wxString& key) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::HasEntry(const wxString& key) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxConfigBase::EntryType wxRegConfig::GetEntryType(const wxString& key) const
|
|
||||||
{
|
|
||||||
return wxConfigBase::Type_Integer;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// reading/writing
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxRegConfig::DoReadString(const wxString& key, wxString *pStr) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// this exactly reproduces the string version above except for ExpandEnvVars(),
|
|
||||||
// we really should avoid this code duplication somehow...
|
|
||||||
|
|
||||||
bool wxRegConfig::DoReadLong(const wxString& key, long *plResult) const
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::DoWriteString(const wxString& key, const wxString& szValue)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::DoWriteLong(const wxString& key, long lValue)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// renaming
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxRegConfig::RenameEntry(const wxString& oldName, const wxString& newName)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::RenameGroup(const wxString& oldName, const wxString& newName)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// deleting
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
bool wxRegConfig::DeleteEntry(const wxString& value, bool bGroupIfEmptyAlso)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::DeleteGroup(const wxString& key)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxRegConfig::DeleteAll()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// wxUSE_CONFIG
|
|
@@ -244,8 +244,6 @@ extern long wxCharsetToCodepage(const wxChar *name)
|
|||||||
|
|
||||||
#else // !wxUSE_FONTMAP
|
#else // !wxUSE_FONTMAP
|
||||||
|
|
||||||
#include "wx/palmos/registry.h"
|
|
||||||
|
|
||||||
// this should work if Internet Exploiter is installed
|
// this should work if Internet Exploiter is installed
|
||||||
extern long wxCharsetToCodepage(const wxChar *name)
|
extern long wxCharsetToCodepage(const wxChar *name)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user