]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/themes/mono.cpp
Add doc for wxGraphicsContext.Create(), which is a lightweight context with no target...
[wxWidgets.git] / src / univ / themes / mono.cpp
index dcba79f7b0c5adbfe3ff07bfe3a64224c8c91b68..7719bfa1862e467a7799fdb15dbc4acc16960317 100644 (file)
@@ -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,7 +70,7 @@ public:
                                  int indexAccel = -1,
                                  wxRect *rectBounds = NULL);
 
-    virtual void DrawFocusRect(wxDC& dc, const wxRect& rect, int flags = 0);
+    virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0);
 
     virtual void DrawButtonBorder(wxDC& dc,
                                   const wxRect& rect,
@@ -577,7 +585,7 @@ wxColour wxMonoColourScheme::GetBackground(wxWindow *win) const
     }
 
     // doesn't depend on the state
-    if ( !col.Ok() )
+    if ( !col.IsOk() )
     {
         col = GetBg();
     }
@@ -600,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:
@@ -649,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:
@@ -701,7 +711,7 @@ wxMonoRenderer::DrawVerticalLine(wxDC& dc, wxCoord x, wxCoord y1, wxCoord y2)
     dc.DrawLine(x, y1, x, y2 + 1);
 }
 
-void wxMonoRenderer::DrawFocusRect(wxDC& dc, const wxRect& rect, int flags)
+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
@@ -717,6 +727,17 @@ void wxMonoRenderer::DrawFocusRect(wxDC& dc, const wxRect& rect, int flags)
 // 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,
@@ -726,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 )
@@ -750,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 )
@@ -767,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 */
@@ -801,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();
 }
@@ -834,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();
 }
@@ -867,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
@@ -883,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;
 }
@@ -934,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();
 }
@@ -1006,7 +1026,7 @@ wxSize wxMonoRenderer::GetSliderThumbSize(const wxRect& rect,
 
 wxSize wxMonoRenderer::GetProgressBarStep() const
 {
-    wxFAIL_MSG(_T("TODO"));
+    wxFAIL_MSG(wxT("TODO"));
 
     return wxSize();
 }
@@ -1022,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]);
     }
@@ -1039,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,