See #17218.
This commit is contained in:
Vadim Zeitlin 2016-02-10 16:17:23 +01:00
commit 730c1ee79b
2 changed files with 52 additions and 1 deletions

View File

@ -38,6 +38,7 @@
#include "wx/graphics.h"
#include "wx/filename.h"
#include "wx/metafile.h"
#include "wx/settings.h"
// ----------------------------------------------------------------------------
// resources
@ -149,6 +150,7 @@ protected:
void DrawSplines(wxDC& dc);
void DrawDefault(wxDC& dc);
void DrawGradients(wxDC& dc);
void DrawSystemColours(wxDC& dc);
void DrawRegionsHelper(wxDC& dc, wxCoord x, bool firstTime);
@ -301,6 +303,7 @@ enum
#if wxUSE_GRAPHICS_CONTEXT
File_ShowGraphics,
#endif
File_ShowSystemColours,
File_ShowGradients,
MenuShow_Last = File_ShowGradients,
@ -1548,6 +1551,47 @@ void MyCanvas::DrawGradients(wxDC& dc)
#endif // wxUSE_GRAPHICS_CONTEXT
}
void MyCanvas::DrawSystemColours(wxDC& dc)
{
wxSize textSize = dc.GetTextExtent("#WWWWgy");
int lineHeight = textSize.GetHeight();
wxRect r(textSize.GetWidth() + 10, 10, 100, lineHeight);
dc.SetPen(*wxTRANSPARENT_PEN);
static const char* sysColNames[] = {
"wxSYS_COLOUR_SCROLLBAR", "wxSYS_COLOUR_DESKTOP", "wxSYS_COLOUR_ACTIVECAPTION",
"wxSYS_COLOUR_INACTIVECAPTION", "wxSYS_COLOUR_MENU", "wxSYS_COLOUR_WINDOW",
"wxSYS_COLOUR_WINDOWFRAME", "wxSYS_COLOUR_MENUTEXT", "wxSYS_COLOUR_WINDOWTEXT",
"wxSYS_COLOUR_CAPTIONTEXT", "wxSYS_COLOUR_ACTIVEBORDER", "wxSYS_COLOUR_INACTIVEBORDER",
"wxSYS_COLOUR_APPWORKSPACE", "wxSYS_COLOUR_HIGHLIGHT", "wxSYS_COLOUR_HIGHLIGHTTEXT",
"wxSYS_COLOUR_BTNFACE", "wxSYS_COLOUR_BTNSHADOW", "wxSYS_COLOUR_GRAYTEXT",
"wxSYS_COLOUR_BTNTEXT", "wxSYS_COLOUR_INACTIVECAPTIONTEXT", "wxSYS_COLOUR_BTNHIGHLIGHT",
"wxSYS_COLOUR_3DDKSHADOW", "wxSYS_COLOUR_3DLIGHT", "wxSYS_COLOUR_INFOTEXT",
"wxSYS_COLOUR_INFOBK", "wxSYS_COLOUR_LISTBOX", "wxSYS_COLOUR_HOTLIGHT",
"wxSYS_COLOUR_GRADIENTACTIVECAPTION", "wxSYS_COLOUR_GRADIENTINACTIVECAPTION",
"wxSYS_COLOUR_MENUHILIGHT", "wxSYS_COLOUR_MENUBAR", "wxSYS_COLOUR_LISTBOXTEXT",
"wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT"
};
for (int i = wxSYS_COLOUR_SCROLLBAR; i < wxSYS_COLOUR_MAX; i++)
{
wxSystemColour sysColour = (wxSystemColour)i;
wxString colourName = sysColNames[sysColour];
wxColour c = wxSystemSettings::GetColour(sysColour);
dc.DrawText(c.GetAsString(wxC2S_HTML_SYNTAX), 10, r.y);
dc.SetBrush(wxBrush(c));
dc.DrawRectangle(r);
dc.DrawText(colourName, r.GetRight() + 10, r.y);
r.y += lineHeight + 4;
}
}
void MyCanvas::DrawRegions(wxDC& dc)
{
dc.DrawText(wxT("You should see a red rect partly covered by a cyan one ")
@ -1746,6 +1790,10 @@ void MyCanvas::Draw(wxDC& pdc)
case File_ShowGradients:
DrawGradients(dc);
break;
case File_ShowSystemColours:
DrawSystemColours(dc);
break;
default:
break;
@ -1901,6 +1949,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
#if wxUSE_GRAPHICS_CONTEXT
menuScreen->Append(File_ShowGraphics, wxT("&Graphics screen"));
#endif
menuScreen->Append(File_ShowSystemColours, wxT("System &colours"));
wxMenu *menuFile = new wxMenu;
#if wxUSE_GRAPHICS_CONTEXT

View File

@ -88,9 +88,11 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
sysColor = [NSColor controlHighlightColor];
break;
case wxSYS_COLOUR_HIGHLIGHTTEXT:
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
sysColor = [NSColor selectedTextColor];
break;
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
sysColor = [NSColor alternateSelectedControlTextColor];
break;
case wxSYS_COLOUR_INFOBK:
// tooltip (bogus)
sysColor = [NSColor windowBackgroundColor];