X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a46f9b187b416dccd36820b1c415eb4ca6cdc8e..0e980f91092ded629a7b014ff0d2238b1c8940c5:/src/univ/themes/win32.cpp?ds=sidebyside diff --git a/src/univ/themes/win32.cpp b/src/univ/themes/win32.cpp index ecd9ec5a97..349c3f088e 100644 --- a/src/univ/themes/win32.cpp +++ b/src/univ/themes/win32.cpp @@ -88,7 +88,6 @@ enum IndicatorStatus IndicatorStatus_Max }; -// ---------------------------------------------------------------------------- // wxWin32Renderer: draw the GUI elements in Win32 style // ---------------------------------------------------------------------------- @@ -236,6 +235,7 @@ public: int end, int step = 1, int flags = 0); +#if wxUSE_MENUS virtual void DrawMenuBarItem(wxDC& dc, const wxRect& rect, @@ -253,8 +253,9 @@ public: virtual void DrawMenuSeparator(wxDC& dc, wxCoord y, const wxMenuGeometryInfo& geomInfo); - +#endif virtual void GetComboBitmaps(wxBitmap *bmpNormal, + wxBitmap *bmpFocus, wxBitmap *bmpPressed, wxBitmap *bmpDisabled); @@ -299,10 +300,11 @@ public: wxOrientation orient) const; virtual wxSize GetProgressBarStep() const { return wxSize(16, 32); } +#if wxUSE_MENUS virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const; virtual wxMenuGeometryInfo *GetMenuGeometry(wxWindow *win, const wxMenu& menu) const; - +#endif protected: // helper of DrawLabel() and DrawCheckOrRadioButton() void DoDrawLabel(wxDC& dc, @@ -1088,6 +1090,37 @@ wxColour wxWin32ColourScheme::Get(wxWin32ColourScheme::StdColour col) const { switch ( col ) { + // use the system colours under Windows +#if defined(__WXMSW__) + case WINDOW: return wxColour(GetSysColor(COLOR_WINDOW)); + + case CONTROL_PRESSED: + case CONTROL_CURRENT: + case CONTROL: return wxColour(GetSysColor(COLOR_BTNFACE)); + + case CONTROL_TEXT: return wxColour(GetSysColor(COLOR_BTNTEXT)); + + case SCROLLBAR: return wxColour(GetSysColor(COLOR_SCROLLBAR)); + case SCROLLBAR_PRESSED: return wxColour(GetSysColor(COLOR_HIGHLIGHT)); + + case HIGHLIGHT: return wxColour(GetSysColor(COLOR_HIGHLIGHT)); + case HIGHLIGHT_TEXT: return wxColour(GetSysColor(COLOR_HIGHLIGHTTEXT)); + +#if defined(COLOR_3DDKSHADOW) + case SHADOW_DARK: return wxColour(GetSysColor(COLOR_3DDKSHADOW)); +#else + case SHADOW_DARK: return *wxBLACK; +#endif + + case CONTROL_TEXT_DISABLED: + case SHADOW_HIGHLIGHT: return wxColour(GetSysColor(COLOR_BTNHIGHLIGHT)); + + case SHADOW_IN: return wxColour(GetSysColor(COLOR_BTNFACE)); + + case CONTROL_TEXT_DISABLED_SHADOW: + case SHADOW_OUT: return wxColour(GetSysColor(COLOR_BTNSHADOW)); +#else // !__WXMSW__ + // use the standard Windows colours elsewhere case WINDOW: return *wxWHITE; case CONTROL_PRESSED: @@ -1111,6 +1144,7 @@ wxColour wxWin32ColourScheme::Get(wxWin32ColourScheme::StdColour col) const case CONTROL_TEXT_DISABLED_SHADOW: case SHADOW_OUT: return wxColour(0x7f7f7f); +#endif // __WXMSW__ case MAX: default: @@ -2442,7 +2476,7 @@ private: GetMenuGeometry(wxWindow *, const wxMenu&) const; }; -#endif // wxUSE_WAVE +#endif // wxUSE_MENUS // FIXME: all constants are hardcoded but shouldn't be static const wxCoord MENU_LEFT_MARGIN = 9; @@ -2680,6 +2714,7 @@ wxMenuGeometryInfo *wxWin32Renderer::GetMenuGeometry(wxWindow *win, #else // !wxUSE_MENUS +/* void wxWin32Renderer::DrawMenuBarItem(wxDC& WXUNUSED(dc), const wxRect& WXUNUSED(rectOrig), const wxString& WXUNUSED(label), @@ -2716,6 +2751,7 @@ wxWin32Renderer::GetMenuGeometry(wxWindow *WXUNUSED(win), { return NULL; } +*/ #endif // wxUSE_MENUS/!wxUSE_MENUS @@ -2724,6 +2760,7 @@ wxWin32Renderer::GetMenuGeometry(wxWindow *WXUNUSED(win), // ---------------------------------------------------------------------------- void wxWin32Renderer::GetComboBitmaps(wxBitmap *bmpNormal, + wxBitmap *bmpFocus, wxBitmap *bmpPressed, wxBitmap *bmpDisabled) { @@ -2973,19 +3010,17 @@ void wxWin32Renderer::AdjustSize(wxSize *size, const wxWindow *window) #if wxUSE_BUTTON if ( wxDynamicCast(window, wxButton) ) { - // TODO - size->x += 3*window->GetCharWidth(); -#if 0 // do allow creating small buttons if wanted - wxSize sizeDef = wxButton::GetDefaultSize(); - if ( size->x < sizeDef.x ) - size->x = sizeDef.x; -#endif // 0 - - wxCoord heightBtn = (11*(window->GetCharHeight() + 8))/10; - if ( size->y < heightBtn - 8 ) - size->y = heightBtn; - else - size->y += 9; + if ( !(window->GetWindowStyle() & wxBU_EXACTFIT) ) + { + // TODO: don't harcode all this + size->x += 3*window->GetCharWidth(); + + wxCoord heightBtn = (11*(window->GetCharHeight() + 8))/10; + if ( size->y < heightBtn - 8 ) + size->y = heightBtn; + else + size->y += 9; + } // no border width adjustments for buttons return;