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
|
||||
================================
|
||||
|
||||
|
||||
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
|
||||
-----------------------
|
||||
|
||||
@ -176,6 +182,9 @@ Changes in behaviour which may result in compilation errors
|
||||
necessarily allocated consecutively any more. Use GetChildren() to find the
|
||||
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
|
||||
-----------------------------------------
|
||||
|
@ -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
|
||||
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