X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4ae3fe39529688ffc016b2059321720d8bde7064..4b02d42e37a2fc25e16644e5276ac3df22cd1690:/src/aui/dockart.cpp diff --git a/src/aui/dockart.cpp b/src/aui/dockart.cpp index 06870399cd..55b5e89258 100644 --- a/src/aui/dockart.cpp +++ b/src/aui/dockart.cpp @@ -35,8 +35,11 @@ #endif #ifdef __WXMAC__ -#include "wx/mac/private.h" +#include "wx/osx/private.h" #include "wx/graphics.h" +#include "wx/dcgraph.h" +// for themeing support +#include #endif #ifdef __WXGTK__ @@ -56,14 +59,14 @@ // wxAuiBlendColour is used by wxAuiStepColour -double wxAuiBlendColour(double fg, double bg, double alpha) +unsigned char wxAuiBlendColour(unsigned char fg, unsigned char bg, double alpha) { double result = bg + (alpha * (fg - bg)); if (result < 0.0) result = 0.0; if (result > 255) result = 255; - return result; + return (unsigned char)result; } // wxAuiStepColour() it a utility function that simply darkens @@ -75,8 +78,10 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha) if (ialpha == 100) return c; - double r = c.Red(), g = c.Green(), b = c.Blue(); - double bg; + unsigned char r = c.Red(), + g = c.Green(), + b = c.Blue(); + unsigned char bg; // ialpha is 0..200 where 0 is completely black // and 200 is completely white and 100 is the same @@ -88,13 +93,13 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha) if (ialpha > 100) { // blend with white - bg = 255.0; + bg = 255; alpha = 1.0 - alpha; // 0 = transparent fg; 1 = opaque fg } else { // blend with black - bg = 0.0; + bg = 0; alpha = 1.0 + alpha; // 0 = transparent fg; 1 = opaque fg } @@ -102,7 +107,7 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha) g = wxAuiBlendColour(g, bg, alpha); b = wxAuiBlendColour(b, bg, alpha); - return wxColour((unsigned char)r, (unsigned char)g, (unsigned char)b); + return wxColour(r, g, b); } @@ -198,7 +203,7 @@ wxString wxAuiChopText(wxDC& dc, const wxString& text, int max_size) wxAuiDefaultDockArt::wxAuiDefaultDockArt() { -#ifdef __WXMAC__ +#if defined( __WXMAC__ ) && wxOSX_USE_COCOA_OR_CARBON wxColor base_colour = wxColour( wxMacCreateCGColorFromHITheme(kThemeBrushToolbarBackground)); #else wxColor base_colour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); @@ -255,9 +260,16 @@ wxAuiDefaultDockArt::wxAuiDefaultDockArt() 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; #else static unsigned char close_bits[]={ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xf3, 0xcf, 0xf9, - 0x9f, 0xfc, 0x3f, 0xfe, 0x3f, 0xfe, 0x9f, 0xfc, 0xcf, 0xf9, 0xe7, 0xf3, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + // reduced height, symmetric + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xf3, 0x9f, 0xf9, + 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfc, 0x9f, 0xf9, 0xcf, 0xf3, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + /* + // same height as maximize/restore + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xe7, 0xcf, 0xf3, 0x9f, 0xf9, + 0x3f, 0xfc, 0x7f, 0xfe, 0x3f, 0xfc, 0x9f, 0xf9, 0xcf, 0xf3, 0xe7, 0xe7, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + */ #endif static unsigned char maximize_bits[] = { @@ -303,7 +315,7 @@ wxAuiDefaultDockArt::wxAuiDefaultDockArt() m_active_pin_bitmap = wxAuiBitmapFromBits(pin_bits, 16, 16, m_active_caption_text_colour); // default metric values -#if defined(__WXMAC__) +#if defined( __WXMAC__ ) && wxOSX_USE_COCOA_OR_CARBON SInt32 height; GetThemeMetric( kThemeMetricSmallPaneSplitterHeight , &height ); m_sash_size = height; @@ -406,13 +418,14 @@ wxFont wxAuiDefaultDockArt::GetFont(int id) void wxAuiDefaultDockArt::DrawSash(wxDC& dc, wxWindow *window, int orientation, const wxRect& rect) { -#if defined(__WXMAC__) +#if defined( __WXMAC__ ) && wxOSX_USE_COCOA_OR_CARBON wxUnusedVar(window); wxUnusedVar(orientation); HIRect splitterRect = CGRectMake( rect.x , rect.y , rect.width , rect.height ); CGContextRef cgContext ; - cgContext = (CGContextRef) dc.GetGraphicsContext()->GetNativeContext() ; + wxGCDCImpl *impl = (wxGCDCImpl*) dc.GetImpl(); + cgContext = (CGContextRef) impl->GetGraphicsContext()->GetNativeContext() ; HIThemeSplitterDrawInfo drawInfo ; drawInfo.version = 0 ;