From: Robin Dunn Date: Mon, 27 Sep 2004 21:17:01 +0000 (+0000) Subject: Allow style spec strings to contain colour names as well as hex values X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5ee1d7604b1867c9aaf4c13a92a304c82acf6ebd Allow style spec strings to contain colour names as well as hex values git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/contrib/include/wx/stc/stc.h b/contrib/include/wx/stc/stc.h index 39b8262430..e8f6a9cbbf 100644 --- a/contrib/include/wx/stc/stc.h +++ b/contrib/include/wx/stc/stc.h @@ -2774,8 +2774,8 @@ public: // // bold turns on bold // italic turns on italics - // fore:#RRGGBB sets the foreground colour - // back:#RRGGBB sets the background colour + // fore:[name or #RRGGBB] sets the foreground colour + // back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/contrib/src/stc/stc.cpp b/contrib/src/stc/stc.cpp index a9a1d9fffb..c57c858a95 100644 --- a/contrib/src/stc/stc.cpp +++ b/contrib/src/stc/stc.cpp @@ -52,13 +52,18 @@ static wxColour wxColourFromLong(long c) { static wxColour wxColourFromSpec(const wxString& spec) { - // spec should be "#RRGGBB" - long red, green, blue; - red = green = blue = 0; - spec.Mid(1,2).ToLong(&red, 16); - spec.Mid(3,2).ToLong(&green, 16); - spec.Mid(5,2).ToLong(&blue, 16); - return wxColour(red, green, blue); + // spec should be a colour name or "#RRGGBB" + if (spec.GetChar(0) == wxT('#')) { + + long red, green, blue; + red = green = blue = 0; + spec.Mid(1,2).ToLong(&red, 16); + spec.Mid(3,2).ToLong(&green, 16); + spec.Mid(5,2).ToLong(&blue, 16); + return wxColour(red, green, blue); + } + else + return wxColour(spec); } //---------------------------------------------------------------------- @@ -2436,8 +2441,8 @@ int wxStyledTextCtrl::GetCurrentLine() { // // bold turns on bold // italic turns on italics -// fore:#RRGGBB sets the foreground colour -// back:#RRGGBB sets the background colour +// fore:[name or #RRGGBB] sets the foreground colour +// back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/contrib/src/stc/stc.cpp.in b/contrib/src/stc/stc.cpp.in index 6e626e3bef..7ed874510f 100644 --- a/contrib/src/stc/stc.cpp.in +++ b/contrib/src/stc/stc.cpp.in @@ -52,13 +52,18 @@ static wxColour wxColourFromLong(long c) { static wxColour wxColourFromSpec(const wxString& spec) { - // spec should be "#RRGGBB" - long red, green, blue; - red = green = blue = 0; - spec.Mid(1,2).ToLong(&red, 16); - spec.Mid(3,2).ToLong(&green, 16); - spec.Mid(5,2).ToLong(&blue, 16); - return wxColour(red, green, blue); + // spec should be a colour name or "#RRGGBB" + if (spec.GetChar(0) == wxT('#')) { + + long red, green, blue; + red = green = blue = 0; + spec.Mid(1,2).ToLong(&red, 16); + spec.Mid(3,2).ToLong(&green, 16); + spec.Mid(5,2).ToLong(&blue, 16); + return wxColour(red, green, blue); + } + else + return wxColour(spec); } //---------------------------------------------------------------------- @@ -210,8 +215,8 @@ int wxStyledTextCtrl::GetCurrentLine() { // // bold turns on bold // italic turns on italics -// fore:#RRGGBB sets the foreground colour -// back:#RRGGBB sets the background colour +// fore:[name or #RRGGBB] sets the foreground colour +// back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/contrib/src/stc/stc.h.in b/contrib/src/stc/stc.h.in index 91148d3575..dd37eb1740 100644 --- a/contrib/src/stc/stc.h.in +++ b/contrib/src/stc/stc.h.in @@ -128,8 +128,8 @@ public: // // bold turns on bold // italic turns on italics - // fore:#RRGGBB sets the foreground colour - // back:#RRGGBB sets the background colour + // fore:[name or #RRGGBB] sets the foreground colour + // back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/include/wx/stc/stc.h b/include/wx/stc/stc.h index 39b8262430..e8f6a9cbbf 100644 --- a/include/wx/stc/stc.h +++ b/include/wx/stc/stc.h @@ -2774,8 +2774,8 @@ public: // // bold turns on bold // italic turns on italics - // fore:#RRGGBB sets the foreground colour - // back:#RRGGBB sets the background colour + // fore:[name or #RRGGBB] sets the foreground colour + // back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp index a9a1d9fffb..c57c858a95 100644 --- a/src/stc/stc.cpp +++ b/src/stc/stc.cpp @@ -52,13 +52,18 @@ static wxColour wxColourFromLong(long c) { static wxColour wxColourFromSpec(const wxString& spec) { - // spec should be "#RRGGBB" - long red, green, blue; - red = green = blue = 0; - spec.Mid(1,2).ToLong(&red, 16); - spec.Mid(3,2).ToLong(&green, 16); - spec.Mid(5,2).ToLong(&blue, 16); - return wxColour(red, green, blue); + // spec should be a colour name or "#RRGGBB" + if (spec.GetChar(0) == wxT('#')) { + + long red, green, blue; + red = green = blue = 0; + spec.Mid(1,2).ToLong(&red, 16); + spec.Mid(3,2).ToLong(&green, 16); + spec.Mid(5,2).ToLong(&blue, 16); + return wxColour(red, green, blue); + } + else + return wxColour(spec); } //---------------------------------------------------------------------- @@ -2436,8 +2441,8 @@ int wxStyledTextCtrl::GetCurrentLine() { // // bold turns on bold // italic turns on italics -// fore:#RRGGBB sets the foreground colour -// back:#RRGGBB sets the background colour +// fore:[name or #RRGGBB] sets the foreground colour +// back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in index 6e626e3bef..7ed874510f 100644 --- a/src/stc/stc.cpp.in +++ b/src/stc/stc.cpp.in @@ -52,13 +52,18 @@ static wxColour wxColourFromLong(long c) { static wxColour wxColourFromSpec(const wxString& spec) { - // spec should be "#RRGGBB" - long red, green, blue; - red = green = blue = 0; - spec.Mid(1,2).ToLong(&red, 16); - spec.Mid(3,2).ToLong(&green, 16); - spec.Mid(5,2).ToLong(&blue, 16); - return wxColour(red, green, blue); + // spec should be a colour name or "#RRGGBB" + if (spec.GetChar(0) == wxT('#')) { + + long red, green, blue; + red = green = blue = 0; + spec.Mid(1,2).ToLong(&red, 16); + spec.Mid(3,2).ToLong(&green, 16); + spec.Mid(5,2).ToLong(&blue, 16); + return wxColour(red, green, blue); + } + else + return wxColour(spec); } //---------------------------------------------------------------------- @@ -210,8 +215,8 @@ int wxStyledTextCtrl::GetCurrentLine() { // // bold turns on bold // italic turns on italics -// fore:#RRGGBB sets the foreground colour -// back:#RRGGBB sets the background colour +// fore:[name or #RRGGBB] sets the foreground colour +// back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling diff --git a/src/stc/stc.h.in b/src/stc/stc.h.in index 91148d3575..dd37eb1740 100644 --- a/src/stc/stc.h.in +++ b/src/stc/stc.h.in @@ -128,8 +128,8 @@ public: // // bold turns on bold // italic turns on italics - // fore:#RRGGBB sets the foreground colour - // back:#RRGGBB sets the background colour + // fore:[name or #RRGGBB] sets the foreground colour + // back:[name or #RRGGBB] sets the background colour // face:[facename] sets the font face name to use // size:[num] sets the font size in points // eol turns on eol filling