X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e76372220ef34c80cd801eff2e0523c87fb00bdb..fb8d7eb7a880f1f2e32d8830f9c5e12b2536e05f:/src/univ/themes/mono.cpp diff --git a/src/univ/themes/mono.cpp b/src/univ/themes/mono.cpp index c769427651..7719bfa186 100644 --- a/src/univ/themes/mono.cpp +++ b/src/univ/themes/mono.cpp @@ -29,6 +29,7 @@ #if wxUSE_THEME_MONO #ifndef WX_PRECOMP + #include "wx/window.h" #include "wx/dc.h" #endif // WX_PRECOMP @@ -53,6 +54,13 @@ class wxMonoRenderer : public wxStdRenderer public: wxMonoRenderer(const wxColourScheme *scheme); + virtual void DrawLabel(wxDC& dc, + const wxString& label, + const wxRect& rect, + int flags = 0, + int alignment = wxALIGN_LEFT | wxALIGN_TOP, + int indexAccel = -1, + wxRect *rectBounds = NULL); virtual void DrawButtonLabel(wxDC& dc, const wxString& label, const wxBitmap& image, @@ -62,6 +70,8 @@ public: int indexAccel = -1, wxRect *rectBounds = NULL); + virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0); + virtual void DrawButtonBorder(wxDC& dc, const wxRect& rect, int flags = 0, @@ -575,7 +585,7 @@ wxColour wxMonoColourScheme::GetBackground(wxWindow *win) const } // doesn't depend on the state - if ( !col.Ok() ) + if ( !col.IsOk() ) { col = GetBg(); } @@ -598,11 +608,12 @@ wxColour wxMonoColourScheme::Get(wxMonoColourScheme::StdColour col) const case TITLEBAR_ACTIVE: case HIGHLIGHT_TEXT: case DESKTOP: + case FRAME: return GetBg(); case MAX: default: - wxFAIL_MSG(_T("invalid standard colour")); + wxFAIL_MSG(wxT("invalid standard colour")); // fall through case SHADOW_DARK: @@ -647,15 +658,16 @@ wxRect wxMonoRenderer::GetBorderDimensions(wxBorder border) const case wxBORDER_STATIC: case wxBORDER_RAISED: case wxBORDER_SUNKEN: + case wxBORDER_THEME: width = 1; break; - + /* case wxBORDER_DOUBLE: width = 2; break; - + */ default: - wxFAIL_MSG(_T("unknown border type")); + wxFAIL_MSG(wxT("unknown border type")); // fall through case wxBORDER_DEFAULT: @@ -699,10 +711,33 @@ wxMonoRenderer::DrawVerticalLine(wxDC& dc, wxCoord x, wxCoord y1, wxCoord y2) dc.DrawLine(x, y1, x, y2 + 1); } +void wxMonoRenderer::DrawFocusRect(wxWindow* WXUNUSED(win), wxDC& dc, const wxRect& rect, int flags) +{ + // no need to draw the focus rect for selected items, it would be invisible + // anyhow + if ( !(flags & wxCONTROL_SELECTED) ) + { + dc.SetPen(m_penFg); + dc.SetBrush(*wxTRANSPARENT_BRUSH); + dc.DrawRectangle(rect); + } +} + // ---------------------------------------------------------------------------- // label // ---------------------------------------------------------------------------- +void wxMonoRenderer::DrawLabel(wxDC& dc, + const wxString& label, + const wxRect& rect, + int WXUNUSED(flags), + int alignment, + int indexAccel, + wxRect *rectBounds) +{ + dc.DrawLabel(label, wxNullBitmap, rect, alignment, indexAccel, rectBounds); +} + void wxMonoRenderer::DrawButtonLabel(wxDC& dc, const wxString& label, const wxBitmap& image, @@ -712,7 +747,6 @@ void wxMonoRenderer::DrawButtonLabel(wxDC& dc, int indexAccel, wxRect *rectBounds) { - dc.SetTextForeground(m_penFg.GetColour()); dc.DrawLabel(label, image, rect, alignment, indexAccel, rectBounds); if ( flags & wxCONTROL_DISABLED ) @@ -736,7 +770,7 @@ wxBitmap wxMonoRenderer::GetIndicator(IndicatorType indType, int flags) GetIndicatorsFromFlags(flags, indState, indStatus); wxBitmap& bmp = m_bmpIndicators[indType][indState][indStatus]; - if ( !bmp.Ok() ) + if ( !bmp.IsOk() ) { const char **xpm = ms_xpmIndicators[indType][indState][indStatus]; if ( xpm ) @@ -753,7 +787,7 @@ wxBitmap wxMonoRenderer::GetFrameButtonBitmap(FrameButtonType type) { if ( type == FrameButton_Close ) { - if ( !m_bmpFrameClose.Ok() ) + if ( !m_bmpFrameClose.IsOk() ) { static const char *xpmFrameClose[] = { /* columns rows colors chars-per-pixel */ @@ -787,27 +821,27 @@ wxBitmap wxMonoRenderer::GetFrameButtonBitmap(FrameButtonType type) #if wxUSE_TOOLBAR -void wxMonoRenderer::DrawToolBarButton(wxDC& dc, - const wxString& label, - const wxBitmap& bitmap, - const wxRect& rect, - int flags, - long style, - int tbarStyle) +void wxMonoRenderer::DrawToolBarButton(wxDC& WXUNUSED(dc), + const wxString& WXUNUSED(label), + const wxBitmap& WXUNUSED(bitmap), + const wxRect& WXUNUSED(rect), + int WXUNUSED(flags), + long WXUNUSED(style), + int WXUNUSED(tbarStyle)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } -wxSize wxMonoRenderer::GetToolBarButtonSize(wxCoord *separator) const +wxSize wxMonoRenderer::GetToolBarButtonSize(wxCoord *WXUNUSED(separator)) const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } wxSize wxMonoRenderer::GetToolBarMargin() const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } @@ -820,27 +854,27 @@ wxSize wxMonoRenderer::GetToolBarMargin() const #if wxUSE_NOTEBOOK -void wxMonoRenderer::DrawTab(wxDC& dc, - const wxRect& rect, - wxDirection dir, - const wxString& label, - const wxBitmap& bitmap, - int flags, - int indexAccel) +void wxMonoRenderer::DrawTab(wxDC& WXUNUSED(dc), + const wxRect& WXUNUSED(rect), + wxDirection WXUNUSED(dir), + const wxString& WXUNUSED(label), + const wxBitmap& WXUNUSED(bitmap), + int WXUNUSED(flags), + int WXUNUSED(indexAccel)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } wxSize wxMonoRenderer::GetTabIndent() const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } wxSize wxMonoRenderer::GetTabPadding() const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } @@ -853,12 +887,12 @@ wxSize wxMonoRenderer::GetTabPadding() const #if wxUSE_COMBOBOX -void wxMonoRenderer::GetComboBitmaps(wxBitmap *bmpNormal, - wxBitmap *bmpFocus, - wxBitmap *bmpPressed, - wxBitmap *bmpDisabled) +void wxMonoRenderer::GetComboBitmaps(wxBitmap *WXUNUSED(bmpNormal), + wxBitmap *WXUNUSED(bmpFocus), + wxBitmap *WXUNUSED(bmpPressed), + wxBitmap *WXUNUSED(bmpDisabled)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } #endif // wxUSE_COMBOBOX @@ -869,45 +903,45 @@ void wxMonoRenderer::GetComboBitmaps(wxBitmap *bmpNormal, #if wxUSE_MENUS -void wxMonoRenderer::DrawMenuBarItem(wxDC& dc, - const wxRect& rect, - const wxString& label, - int flags, - int indexAccel) +void wxMonoRenderer::DrawMenuBarItem(wxDC& WXUNUSED(dc), + const wxRect& WXUNUSED(rect), + const wxString& WXUNUSED(label), + int WXUNUSED(flags), + int WXUNUSED(indexAccel)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } -void wxMonoRenderer::DrawMenuItem(wxDC& dc, - wxCoord y, - const wxMenuGeometryInfo& geometryInfo, - const wxString& label, - const wxString& accel, - const wxBitmap& bitmap, - int flags, - int indexAccel) +void wxMonoRenderer::DrawMenuItem(wxDC& WXUNUSED(dc), + wxCoord WXUNUSED(y), + const wxMenuGeometryInfo& WXUNUSED(geometryInfo), + const wxString& WXUNUSED(label), + const wxString& WXUNUSED(accel), + const wxBitmap& WXUNUSED(bitmap), + int WXUNUSED(flags), + int WXUNUSED(indexAccel)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } -void wxMonoRenderer::DrawMenuSeparator(wxDC& dc, - wxCoord y, - const wxMenuGeometryInfo& geomInfo) +void wxMonoRenderer::DrawMenuSeparator(wxDC& WXUNUSED(dc), + wxCoord WXUNUSED(y), + const wxMenuGeometryInfo& WXUNUSED(geomInfo)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } -wxSize wxMonoRenderer::GetMenuBarItemSize(const wxSize& sizeText) const +wxSize wxMonoRenderer::GetMenuBarItemSize(const wxSize& WXUNUSED(sizeText)) const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } -wxMenuGeometryInfo *wxMonoRenderer::GetMenuGeometry(wxWindow *win, - const wxMenu& menu) const +wxMenuGeometryInfo *wxMonoRenderer::GetMenuGeometry(wxWindow *WXUNUSED(win), + const wxMenu& WXUNUSED(menu)) const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return NULL; } @@ -920,70 +954,70 @@ wxMenuGeometryInfo *wxMonoRenderer::GetMenuGeometry(wxWindow *win, #if wxUSE_SLIDER -void wxMonoRenderer::DrawSliderShaft(wxDC& dc, - const wxRect& rect, - int lenThumb, - wxOrientation orient, - int flags, - long style, - wxRect *rectShaft) +void wxMonoRenderer::DrawSliderShaft(wxDC& WXUNUSED(dc), + const wxRect& WXUNUSED(rect), + int WXUNUSED(lenThumb), + wxOrientation WXUNUSED(orient), + int WXUNUSED(flags), + long WXUNUSED(style), + wxRect *WXUNUSED(rectShaft)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } -void wxMonoRenderer::DrawSliderThumb(wxDC& dc, - const wxRect& rect, - wxOrientation orient, - int flags, - long style) +void wxMonoRenderer::DrawSliderThumb(wxDC& WXUNUSED(dc), + const wxRect& WXUNUSED(rect), + wxOrientation WXUNUSED(orient), + int WXUNUSED(flags), + long WXUNUSED(style)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } -void wxMonoRenderer::DrawSliderTicks(wxDC& dc, - const wxRect& rect, - int lenThumb, - wxOrientation orient, - int start, - int end, - int step, - int flags, - long style) +void wxMonoRenderer::DrawSliderTicks(wxDC& WXUNUSED(dc), + const wxRect& WXUNUSED(rect), + int WXUNUSED(lenThumb), + wxOrientation WXUNUSED(orient), + int WXUNUSED(start), + int WXUNUSED(end), + int WXUNUSED(step), + int WXUNUSED(flags), + long WXUNUSED(style)) { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); } wxCoord wxMonoRenderer::GetSliderDim() const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return 0; } wxCoord wxMonoRenderer::GetSliderTickLen() const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return 0; } -wxRect wxMonoRenderer::GetSliderShaftRect(const wxRect& rect, - int lenThumb, - wxOrientation orient, - long style) const +wxRect wxMonoRenderer::GetSliderShaftRect(const wxRect& WXUNUSED(rect), + int WXUNUSED(lenThumb), + wxOrientation WXUNUSED(orient), + long WXUNUSED(style)) const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxRect(); } -wxSize wxMonoRenderer::GetSliderThumbSize(const wxRect& rect, - int lenThumb, - wxOrientation orient) const +wxSize wxMonoRenderer::GetSliderThumbSize(const wxRect& WXUNUSED(rect), + int WXUNUSED(lenThumb), + wxOrientation WXUNUSED(orient)) const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } @@ -992,7 +1026,7 @@ wxSize wxMonoRenderer::GetSliderThumbSize(const wxRect& rect, wxSize wxMonoRenderer::GetProgressBarStep() const { - wxFAIL_MSG(_T("TODO")); + wxFAIL_MSG(wxT("TODO")); return wxSize(); } @@ -1008,10 +1042,10 @@ void wxMonoRenderer::DrawArrow(wxDC& dc, int WXUNUSED(flags)) { ArrowDirection arrowDir = GetArrowDirection(dir); - wxCHECK_RET( arrowDir != Arrow_Max, _T("invalid arrow direction") ); + wxCHECK_RET( arrowDir != Arrow_Max, wxT("invalid arrow direction") ); wxBitmap& bmp = m_bmpArrows[arrowDir]; - if ( !bmp.Ok() ) + if ( !bmp.IsOk() ) { bmp = wxBitmap(ms_xpmArrows[arrowDir]); } @@ -1025,7 +1059,18 @@ void wxMonoRenderer::DrawScrollbarThumb(wxDC& dc, const wxRect& rect, int WXUNUSED(flags)) { - DrawSolidRect(dc, wxMONO_FG_COL, rect); + DrawSolidRect(dc, wxMONO_BG_COL, rect); + + // manually draw stipple pattern (wxDFB doesn't implement the wxSTIPPLE + // brush style): + dc.SetPen(m_penFg); + for ( wxCoord y = rect.GetTop(); y <= rect.GetBottom(); y++ ) + { + for ( wxCoord x = rect.GetLeft() + (y % 2); x <= rect.GetRight(); x+=2 ) + { + dc.DrawPoint(x, y); + } + } } void wxMonoRenderer::DrawScrollbarShaft(wxDC& dc,