mention the problem with writing enums to wxConfig (see #8656)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
5cfbef2a69
commit
500b128d0e
@ -5,6 +5,12 @@
|
|||||||
INCOMPATIBLE CHANGES SINCE 2.8.x
|
INCOMPATIBLE CHANGES SINCE 2.8.x
|
||||||
================================
|
================================
|
||||||
|
|
||||||
|
|
||||||
|
Notice that these changes are described in more details in
|
||||||
|
the "Changes Since wxWidgets 2.8" section of the manual,
|
||||||
|
please read it if the explanation here is too cryptic.
|
||||||
|
|
||||||
|
|
||||||
Unicode-related changes
|
Unicode-related changes
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
@ -176,6 +182,9 @@ Changes in behaviour which may result in compilation errors
|
|||||||
necessarily allocated consecutively any more. Use GetChildren() to find the
|
necessarily allocated consecutively any more. Use GetChildren() to find the
|
||||||
next/previous control sibling instead.
|
next/previous control sibling instead.
|
||||||
|
|
||||||
|
- Calling wxConfig::Write() with an enum value will fail to compile because
|
||||||
|
wxConfig now tries to convert all unknown types to wxString automatically.
|
||||||
|
The simplest solution is to cast the enum value to int.
|
||||||
|
|
||||||
Deprecated methods and their replacements
|
Deprecated methods and their replacements
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
@ -109,5 +109,45 @@ Finally, a few structure fields, notable @c wxCmdLineEntryDesc::shortName,
|
|||||||
your code if you overrode these functions and change the functions in the
|
your code if you overrode these functions and change the functions in the
|
||||||
derived classes to use const reference as well.
|
derived classes to use const reference as well.
|
||||||
|
|
||||||
|
- Calling wxConfig::Write() with an enum value will fail to compile because
|
||||||
|
wxConfig now tries to convert all unknown types to wxString automatically
|
||||||
|
using wxToString() function.
|
||||||
|
|
||||||
|
The simplest solution is to cast the enum value to int, e.g.
|
||||||
|
@code
|
||||||
|
enum Colour { Red, Green, Blue };
|
||||||
|
|
||||||
|
wxConfig conf;
|
||||||
|
conf.Write("MyFavouriteColour", Red); // ERROR: no match
|
||||||
|
conf.Write("MyFavouriteColour", int(Red)); // OK
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
Another possibility which exists now is to provide an overload of
|
||||||
|
wxToString() (and wxFromString()) for your own type, e.g.
|
||||||
|
|
||||||
|
@code
|
||||||
|
wxString wxToString(Colour col)
|
||||||
|
{
|
||||||
|
return col == Red ? "R" : col == Green ? "G" : "B";
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxFromString(const wxString& s, Colour* col)
|
||||||
|
{
|
||||||
|
if ( s.length() != 1 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
switch ( s[0].GetValue() )
|
||||||
|
{
|
||||||
|
case 'R': *col = Red; return true;
|
||||||
|
case 'G': *col = Green; return true;
|
||||||
|
case 'B': *col = Blue; return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
Of course, this will change the format of the wxConfig output which may be
|
||||||
|
undesirable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user