// another example: using default values and the full path instead of just
// key name: if the key is not found , the value 17 is returned
- long value = config->Read("/LastRun/CalculatedValues/MaxValue", 17);
+ long value = config->ReadLong("/LastRun/CalculatedValues/MaxValue", 17);
...
...
...
conf->Write("../GroupEntry", 2);
conf->SetPath("..");
- wxASSERT( conf->Read("Subgroup/SubgroupEntry", 0l) == 3 );
+ wxASSERT( conf->ReadLong("Subgroup/SubgroupEntry", 0) == 3 );
// use absolute path: it is allowed, too
- wxASSERT( conf->Read("/RootEntry", 0l) == 1 );
+ wxASSERT( conf->ReadLong("/RootEntry", 0) == 1 );
\end{verbatim}
{\it Warning}: it is probably a good idea to always restore the path to its
foo(config);
// we're reading "/Foo/Data/Test" here! -1 will probably be returned...
- wxASSERT( config->Read("Test", -1) == 17 );
+ wxASSERT( config->ReadLong("Test", -1) == 17 );
}
\end{verbatim}
Reads a long value, returning \true if the value was found. If the value was
not found, {\it defaultVal} is used instead.
-\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{ defaultVal}}
-
-Reads a long value from the key and returns it. {\it defaultVal} is returned
-if the key is not found.
-
-NB: writing
-
-{\small
-\begin{verbatim}
- conf->Read("key", 0);
-\end{verbatim}
-}
-
-won't work because the call is ambiguous: compiler can not choose between two
-{\it Read} functions. Instead, write:
-
-{\small
-\begin{verbatim}
- conf->Read("key", 0l);
-\end{verbatim}
-}
-
\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}}
Reads a double value, returning \true if the value was found. If the value was
}}
+\membersection{wxConfigBase::ReadBool}\label{wxconfigbasereadbool}
+
+\constfunc{long }{ReadBool}{\param{const wxString\& }{key}, \param{bool}{ defaultVal}}
+
+Reads a bool value from the key and returns it. {\it defaultVal} is returned
+if the key is not found.
+
+
+\membersection{wxConfigBase::ReadDouble}\label{wxconfigbasereaddouble}
+
+\constfunc{long }{ReadDouble}{\param{const wxString\& }{key}, \param{double}{ defaultVal}}
+
+Reads a double value from the key and returns it. {\it defaultVal} is returned
+if the key is not found.
+
+
+\membersection{wxConfigBase::ReadLong}\label{wxconfigbasereadlong}
+
+\constfunc{long }{ReadLong}{\param{const wxString\& }{key}, \param{long}{ defaultVal}}
+
+Reads a long value from the key and returns it. {\it defaultVal} is returned
+if the key is not found.
+
+
+\membersection{wxConfigBase::ReadObject}\label{wxconfigbasereadobject}
+
+\constfunc{T }{ReadObject}{\param{const wxString\& }{key}, \param{T const&}{ defaultVal}}
+
+Reads a value of type T, for which function
+\helpref{wxFromString}{wxfromstring} is defined, from the key and returns it.
+{\it defaultVal} is returned if the key is not found.
+
+
\membersection{wxConfigBase::RenameEntry}\label{wxconfigbaserenameentry}
\func{bool}{RenameEntry}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}}
}
#endif
- // convenience functions returning directly the value (we don't have them for
- // int/double/bool as there would be ambiguities with the long one then)
+ // convenience functions returning directly the value
wxString Read(const wxString& key,
const wxString& defVal = wxEmptyString) const
{ wxString s; (void)Read(key, &s, defVal); return s; }
{ return Read(key, wxString(defVal)); }
#endif
- long Read(const wxString& key, long defVal) const
+ long ReadLong(const wxString& key, long defVal) const
{ long l; (void)Read(key, &l, defVal); return l; }
- // write the value (return true on success)
+ double ReadDouble(const wxString& key, double defVal) const
+ { double d; (void)Read(key, &d, defVal); return d; }
+
+ bool ReadBool(const wxString& key, bool defVal) const
+ { bool b; (void)Read(key, &b, defVal); return b; }
+
+ template <typename T>
+ T ReadObject(const wxString& key, T const& defVal) const
+ { T t; (void)Read(key, &t, defVal); return t; }
+
+ // for compatibility with wx 2.8
+ long Read(const wxString& key, long defVal) const
+ { return ReadLong(key, defVal); }
+
+
+ // write the value (return true on success)
bool Write(const wxString& key, const wxString& value)
{ return DoWriteString(key, value); }
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( long1, 234L );
+ CPPUNIT_ASSERT( config->ReadLong(wxT("long1"), 0) == 234 );
+
+ double double1;
+ r = config->Read(wxT("double1"), &double1);
+ CPPUNIT_ASSERT( r );
+ CPPUNIT_ASSERT_EQUAL( double1, 345.67 );
+
+ CPPUNIT_ASSERT( config->ReadDouble(wxT("double1"), 0) == double1 );
+
bool bool1;
- r = config->Read(wxT("foo"), &bool1);
+ r = config->Read(wxT("foo"), &bool1); // there is no "foo" key
CPPUNIT_ASSERT( !r );
r = config->Read(wxT("bool1"), &bool1);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT_EQUAL( bool1, true );
+ CPPUNIT_ASSERT( config->ReadBool(wxT("bool1"), false) == bool1 );
+
wxColour color1;
r = config->Read(wxT("color1"), &color1);
CPPUNIT_ASSERT( r );
CPPUNIT_ASSERT( color1 == wxColour(11,22,33,44) );
+ CPPUNIT_ASSERT( config->ReadObject(wxT("color1"), wxNullColour) == color1 );
+
config->DeleteAll();
delete config;
}