1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: src/univ/themes/mono.cpp
3 // Purpose: wxUniversal theme for monochrome displays
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 2006 REA Elektronik GmbH
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
12 // ===========================================================================
14 // ===========================================================================
16 // ---------------------------------------------------------------------------
18 // ---------------------------------------------------------------------------
20 // for compilers that support precompilation, includes "wx.h".
21 #include "wx/wxprec.h"
27 #include "wx/univ/theme.h"
32 #include "wx/window.h"
36 #include "wx/artprov.h"
37 #include "wx/univ/stdrend.h"
38 #include "wx/univ/inphand.h"
39 #include "wx/univ/colschem.h"
41 class wxMonoColourScheme
;
43 #define wxMONO_BG_COL (*wxWHITE)
44 #define wxMONO_FG_COL (*wxBLACK)
46 // ----------------------------------------------------------------------------
47 // wxMonoRenderer: draw the GUI elements in simplest possible way
48 // ----------------------------------------------------------------------------
50 // Warning: many of the methods here are not implemented, the code won't work
51 // if any but a few wxUSE_XXXs are on
52 class wxMonoRenderer
: public wxStdRenderer
55 wxMonoRenderer(const wxColourScheme
*scheme
);
57 virtual void DrawLabel(wxDC
& dc
,
58 const wxString
& label
,
61 int alignment
= wxALIGN_LEFT
| wxALIGN_TOP
,
63 wxRect
*rectBounds
= NULL
);
64 virtual void DrawButtonLabel(wxDC
& dc
,
65 const wxString
& label
,
66 const wxBitmap
& image
,
69 int alignment
= wxALIGN_LEFT
| wxALIGN_TOP
,
71 wxRect
*rectBounds
= NULL
);
73 virtual void DrawFocusRect(wxWindow
* win
, wxDC
& dc
, const wxRect
& rect
, int flags
= 0);
75 virtual void DrawButtonBorder(wxDC
& dc
,
78 wxRect
*rectIn
= NULL
);
80 virtual void DrawHorizontalLine(wxDC
& dc
,
81 wxCoord y
, wxCoord x1
, wxCoord x2
);
83 virtual void DrawVerticalLine(wxDC
& dc
,
84 wxCoord x
, wxCoord y1
, wxCoord y2
);
86 virtual void DrawArrow(wxDC
& dc
,
90 virtual void DrawScrollbarThumb(wxDC
& dc
,
94 virtual void DrawScrollbarShaft(wxDC
& dc
,
100 virtual void DrawToolBarButton(wxDC
& dc
,
101 const wxString
& label
,
102 const wxBitmap
& bitmap
,
107 #endif // wxUSE_TOOLBAR
110 virtual void DrawTab(wxDC
& dc
,
113 const wxString
& label
,
114 const wxBitmap
& bitmap
= wxNullBitmap
,
116 int indexAccel
= -1);
117 #endif // wxUSE_NOTEBOOK
120 virtual void DrawSliderShaft(wxDC
& dc
,
123 wxOrientation orient
,
126 wxRect
*rectShaft
= NULL
);
128 virtual void DrawSliderThumb(wxDC
& dc
,
130 wxOrientation orient
,
134 virtual void DrawSliderTicks(wxDC
& dc
,
137 wxOrientation orient
,
143 #endif // wxUSE_SLIDER
146 virtual void DrawMenuBarItem(wxDC
& dc
,
148 const wxString
& label
,
150 int indexAccel
= -1);
152 virtual void DrawMenuItem(wxDC
& dc
,
154 const wxMenuGeometryInfo
& geometryInfo
,
155 const wxString
& label
,
156 const wxString
& accel
,
157 const wxBitmap
& bitmap
= wxNullBitmap
,
159 int indexAccel
= -1);
161 virtual void DrawMenuSeparator(wxDC
& dc
,
163 const wxMenuGeometryInfo
& geomInfo
);
164 #endif // wxUSE_MENUS
167 virtual void GetComboBitmaps(wxBitmap
*bmpNormal
,
169 wxBitmap
*bmpPressed
,
170 wxBitmap
*bmpDisabled
);
171 #endif // wxUSE_COMBOBOX
174 virtual wxRect
GetBorderDimensions(wxBorder border
) const;
177 virtual wxSize
GetScrollbarArrowSize() const { return GetStdBmpSize(); }
178 #endif // wxUSE_SCROLLBAR
180 virtual wxSize
GetCheckBitmapSize() const { return GetStdBmpSize(); }
181 virtual wxSize
GetRadioBitmapSize() const { return GetStdBmpSize(); }
184 virtual wxSize
GetToolBarButtonSize(wxCoord
*separator
) const;
186 virtual wxSize
GetToolBarMargin() const;
187 #endif // wxUSE_TOOLBAR
190 virtual wxSize
GetTabIndent() const;
192 virtual wxSize
GetTabPadding() const;
193 #endif // wxUSE_NOTEBOOK
196 virtual wxCoord
GetSliderDim() const;
198 virtual wxCoord
GetSliderTickLen() const;
200 virtual wxRect
GetSliderShaftRect(const wxRect
& rect
,
202 wxOrientation orient
,
203 long style
= 0) const;
205 virtual wxSize
GetSliderThumbSize(const wxRect
& rect
,
207 wxOrientation orient
) const;
208 #endif // wxUSE_SLIDER
210 virtual wxSize
GetProgressBarStep() const;
213 virtual wxSize
GetMenuBarItemSize(const wxSize
& sizeText
) const;
215 virtual wxMenuGeometryInfo
*GetMenuGeometry(wxWindow
*win
,
216 const wxMenu
& menu
) const;
217 #endif // wxUSE_MENUS
220 virtual wxCoord
GetStatusBarBorderBetweenFields() const;
222 virtual wxSize
GetStatusBarFieldMargins() const;
223 #endif // wxUSE_STATUSBAR
226 // override base class border drawing routines: we always draw just a
227 // single simple border
228 void DrawSimpleBorder(wxDC
& dc
, wxRect
*rect
)
229 { DrawRect(dc
, rect
, m_penFg
); }
231 virtual void DrawRaisedBorder(wxDC
& dc
, wxRect
*rect
)
232 { DrawSimpleBorder(dc
, rect
); }
233 virtual void DrawSunkenBorder(wxDC
& dc
, wxRect
*rect
)
234 { DrawSimpleBorder(dc
, rect
); }
235 virtual void DrawAntiSunkenBorder(wxDC
& dc
, wxRect
*rect
)
236 { DrawSimpleBorder(dc
, rect
); }
237 virtual void DrawBoxBorder(wxDC
& dc
, wxRect
*rect
)
238 { DrawSimpleBorder(dc
, rect
); }
239 virtual void DrawStaticBorder(wxDC
& dc
, wxRect
*rect
)
240 { DrawSimpleBorder(dc
, rect
); }
241 virtual void DrawExtraBorder(wxDC
& WXUNUSED(dc
), wxRect
* WXUNUSED(rect
))
242 { /* no extra borders for us */ }
244 // all our XPMs are of this size
245 static wxSize
GetStdBmpSize() { return wxSize(8, 8); }
247 wxBitmap
GetIndicator(IndicatorType indType
, int flags
);
248 virtual wxBitmap
GetCheckBitmap(int flags
)
249 { return GetIndicator(IndicatorType_Check
, flags
); }
250 virtual wxBitmap
GetRadioBitmap(int flags
)
251 { return GetIndicator(IndicatorType_Radio
, flags
); }
253 virtual wxBitmap
GetFrameButtonBitmap(FrameButtonType type
);
254 virtual int GetFrameBorderWidth(int flags
) const;
257 // the bitmaps returned by GetIndicator()
258 wxBitmap m_bmpIndicators
[IndicatorType_MaxCtrl
]
259 [IndicatorState_MaxCtrl
]
260 [IndicatorStatus_Max
];
262 static const char **ms_xpmIndicators
[IndicatorType_MaxCtrl
]
263 [IndicatorState_MaxCtrl
]
264 [IndicatorStatus_Max
];
266 // the arrow bitmaps used by DrawArrow()
267 wxBitmap m_bmpArrows
[Arrow_Max
];
269 static const char **ms_xpmArrows
[Arrow_Max
];
271 // the close bitmap for the frame for GetFrameButtonBitmap()
272 wxBitmap m_bmpFrameClose
;
274 // pen used for foreground drawing
278 // ----------------------------------------------------------------------------
280 // ----------------------------------------------------------------------------
282 static const char *xpmUnchecked
[] = {
283 /* columns rows colors chars-per-pixel */
298 static const char *xpmChecked
[] = {
299 /* columns rows colors chars-per-pixel */
314 static const char *xpmUndeterminate
[] = {
315 /* columns rows colors chars-per-pixel */
330 static const char *xpmRadioUnchecked
[] = {
331 /* columns rows colors chars-per-pixel */
346 static const char *xpmRadioChecked
[] = {
347 /* columns rows colors chars-per-pixel */
362 const char **wxMonoRenderer::ms_xpmIndicators
[IndicatorType_MaxCtrl
]
363 [IndicatorState_MaxCtrl
]
364 [IndicatorStatus_Max
] =
369 { xpmChecked
, xpmUnchecked
, xpmUndeterminate
},
372 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
375 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
381 { xpmRadioChecked
, xpmRadioUnchecked
, xpmUndeterminate
},
384 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
387 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
391 static const char *xpmLeftArrow
[] = {
392 /* columns rows colors chars-per-pixel */
407 static const char *xpmRightArrow
[] = {
408 /* columns rows colors chars-per-pixel */
423 static const char *xpmUpArrow
[] = {
424 /* columns rows colors chars-per-pixel */
439 static const char *xpmDownArrow
[] = {
440 /* columns rows colors chars-per-pixel */
455 const char **wxMonoRenderer::ms_xpmArrows
[Arrow_Max
] =
457 xpmLeftArrow
, xpmRightArrow
, xpmUpArrow
, xpmDownArrow
,
460 // ----------------------------------------------------------------------------
461 // wxMonoColourScheme: uses just white and black
462 // ----------------------------------------------------------------------------
464 class wxMonoColourScheme
: public wxColourScheme
467 // we use only 2 colours, white and black, but we avoid referring to them
468 // like this, instead use the functions below
469 wxColour
GetFg() const { return wxMONO_FG_COL
; }
470 wxColour
GetBg() const { return wxMONO_BG_COL
; }
472 // implement base class pure virtuals
473 virtual wxColour
Get(StdColour col
) const;
474 virtual wxColour
GetBackground(wxWindow
*win
) const;
477 // ----------------------------------------------------------------------------
479 // ----------------------------------------------------------------------------
481 class wxMonoArtProvider
: public wxArtProvider
484 virtual wxBitmap
CreateBitmap(const wxArtID
& id
,
485 const wxArtClient
& client
,
489 // ----------------------------------------------------------------------------
491 // ----------------------------------------------------------------------------
493 class wxMonoTheme
: public wxTheme
497 virtual ~wxMonoTheme();
499 virtual wxRenderer
*GetRenderer();
500 virtual wxArtProvider
*GetArtProvider();
501 virtual wxInputHandler
*GetInputHandler(const wxString
& control
,
502 wxInputConsumer
*consumer
);
503 virtual wxColourScheme
*GetColourScheme();
506 wxMonoRenderer
*m_renderer
;
507 wxMonoArtProvider
*m_artProvider
;
508 wxMonoColourScheme
*m_scheme
;
510 WX_DECLARE_THEME(mono
)
513 // ============================================================================
515 // ============================================================================
517 WX_IMPLEMENT_THEME(wxMonoTheme
, mono
, wxTRANSLATE("Simple monochrome theme"));
519 // ----------------------------------------------------------------------------
521 // ----------------------------------------------------------------------------
523 wxMonoTheme::wxMonoTheme()
527 m_artProvider
= NULL
;
530 wxMonoTheme::~wxMonoTheme()
534 delete m_artProvider
;
537 wxRenderer
*wxMonoTheme::GetRenderer()
541 m_renderer
= new wxMonoRenderer(GetColourScheme());
547 wxArtProvider
*wxMonoTheme::GetArtProvider()
549 if ( !m_artProvider
)
551 m_artProvider
= new wxMonoArtProvider
;
554 return m_artProvider
;
557 wxColourScheme
*wxMonoTheme::GetColourScheme()
561 m_scheme
= new wxMonoColourScheme
;
567 wxInputHandler
*wxMonoTheme::GetInputHandler(const wxString
& WXUNUSED(control
),
568 wxInputConsumer
*consumer
)
570 // no special input handlers so far
571 return consumer
->DoGetStdInputHandler(NULL
);
574 // ============================================================================
575 // wxMonoColourScheme
576 // ============================================================================
578 wxColour
wxMonoColourScheme::GetBackground(wxWindow
*win
) const
581 if ( win
->UseBgCol() )
583 // use the user specified colour
584 col
= win
->GetBackgroundColour();
587 // doesn't depend on the state
596 wxColour
wxMonoColourScheme::Get(wxMonoColourScheme::StdColour col
) const
602 case CONTROL_PRESSED
:
603 case CONTROL_CURRENT
:
605 case SCROLLBAR_PRESSED
:
608 case TITLEBAR_ACTIVE
:
616 wxFAIL_MSG(wxT("invalid standard colour"));
620 case SHADOW_HIGHLIGHT
:
624 case CONTROL_TEXT_DISABLED
:
625 case CONTROL_TEXT_DISABLED_SHADOW
:
627 case TITLEBAR_ACTIVE_TEXT
:
634 // ============================================================================
636 // ============================================================================
638 // ----------------------------------------------------------------------------
640 // ----------------------------------------------------------------------------
642 wxMonoRenderer::wxMonoRenderer(const wxColourScheme
*scheme
)
643 : wxStdRenderer(scheme
)
645 m_penFg
= wxPen(wxMONO_FG_COL
);
648 // ----------------------------------------------------------------------------
650 // ----------------------------------------------------------------------------
652 wxRect
wxMonoRenderer::GetBorderDimensions(wxBorder border
) const
657 case wxBORDER_SIMPLE
:
658 case wxBORDER_STATIC
:
659 case wxBORDER_RAISED
:
660 case wxBORDER_SUNKEN
:
665 case wxBORDER_DOUBLE:
670 wxFAIL_MSG(wxT("unknown border type"));
673 case wxBORDER_DEFAULT
:
688 void wxMonoRenderer::DrawButtonBorder(wxDC
& dc
,
693 DrawBorder(dc
, wxBORDER_SIMPLE
, rect
, flags
, rectIn
);
696 // ----------------------------------------------------------------------------
698 // ----------------------------------------------------------------------------
701 wxMonoRenderer::DrawHorizontalLine(wxDC
& dc
, wxCoord y
, wxCoord x1
, wxCoord x2
)
704 dc
.DrawLine(x1
, y
, x2
+ 1, y
);
708 wxMonoRenderer::DrawVerticalLine(wxDC
& dc
, wxCoord x
, wxCoord y1
, wxCoord y2
)
711 dc
.DrawLine(x
, y1
, x
, y2
+ 1);
714 void wxMonoRenderer::DrawFocusRect(wxWindow
* WXUNUSED(win
), wxDC
& dc
, const wxRect
& rect
, int flags
)
716 // no need to draw the focus rect for selected items, it would be invisible
718 if ( !(flags
& wxCONTROL_SELECTED
) )
721 dc
.SetBrush(*wxTRANSPARENT_BRUSH
);
722 dc
.DrawRectangle(rect
);
726 // ----------------------------------------------------------------------------
728 // ----------------------------------------------------------------------------
730 void wxMonoRenderer::DrawLabel(wxDC
& dc
,
731 const wxString
& label
,
738 dc
.DrawLabel(label
, wxNullBitmap
, rect
, alignment
, indexAccel
, rectBounds
);
741 void wxMonoRenderer::DrawButtonLabel(wxDC
& dc
,
742 const wxString
& label
,
743 const wxBitmap
& image
,
750 dc
.DrawLabel(label
, image
, rect
, alignment
, indexAccel
, rectBounds
);
752 if ( flags
& wxCONTROL_DISABLED
)
754 // this is ugly but I don't know how to show disabled button visually
755 // in monochrome theme otherwise, so cross it out
757 dc
.DrawLine(rect
.GetTopLeft(), rect
.GetBottomRight());
758 dc
.DrawLine(rect
.GetTopRight(), rect
.GetBottomLeft());
762 // ----------------------------------------------------------------------------
764 // ----------------------------------------------------------------------------
766 wxBitmap
wxMonoRenderer::GetIndicator(IndicatorType indType
, int flags
)
768 IndicatorState indState
;
769 IndicatorStatus indStatus
;
770 GetIndicatorsFromFlags(flags
, indState
, indStatus
);
772 wxBitmap
& bmp
= m_bmpIndicators
[indType
][indState
][indStatus
];
775 const char **xpm
= ms_xpmIndicators
[indType
][indState
][indStatus
];
778 // create and cache it
786 wxBitmap
wxMonoRenderer::GetFrameButtonBitmap(FrameButtonType type
)
788 if ( type
== FrameButton_Close
)
790 if ( !m_bmpFrameClose
.IsOk() )
792 static const char *xpmFrameClose
[] = {
793 /* columns rows colors chars-per-pixel */
808 m_bmpFrameClose
= wxBitmap(xpmFrameClose
);
811 return m_bmpFrameClose
;
814 // we don't show any other buttons than close
818 // ----------------------------------------------------------------------------
820 // ----------------------------------------------------------------------------
824 void wxMonoRenderer::DrawToolBarButton(wxDC
& WXUNUSED(dc
),
825 const wxString
& WXUNUSED(label
),
826 const wxBitmap
& WXUNUSED(bitmap
),
827 const wxRect
& WXUNUSED(rect
),
829 long WXUNUSED(style
),
830 int WXUNUSED(tbarStyle
))
832 wxFAIL_MSG(wxT("TODO"));
835 wxSize
wxMonoRenderer::GetToolBarButtonSize(wxCoord
*WXUNUSED(separator
)) const
837 wxFAIL_MSG(wxT("TODO"));
842 wxSize
wxMonoRenderer::GetToolBarMargin() const
844 wxFAIL_MSG(wxT("TODO"));
849 #endif // wxUSE_TOOLBAR
851 // ----------------------------------------------------------------------------
853 // ----------------------------------------------------------------------------
857 void wxMonoRenderer::DrawTab(wxDC
& WXUNUSED(dc
),
858 const wxRect
& WXUNUSED(rect
),
859 wxDirection
WXUNUSED(dir
),
860 const wxString
& WXUNUSED(label
),
861 const wxBitmap
& WXUNUSED(bitmap
),
863 int WXUNUSED(indexAccel
))
865 wxFAIL_MSG(wxT("TODO"));
868 wxSize
wxMonoRenderer::GetTabIndent() const
870 wxFAIL_MSG(wxT("TODO"));
875 wxSize
wxMonoRenderer::GetTabPadding() const
877 wxFAIL_MSG(wxT("TODO"));
882 #endif // wxUSE_NOTEBOOK
884 // ----------------------------------------------------------------------------
886 // ----------------------------------------------------------------------------
890 void wxMonoRenderer::GetComboBitmaps(wxBitmap
*WXUNUSED(bmpNormal
),
891 wxBitmap
*WXUNUSED(bmpFocus
),
892 wxBitmap
*WXUNUSED(bmpPressed
),
893 wxBitmap
*WXUNUSED(bmpDisabled
))
895 wxFAIL_MSG(wxT("TODO"));
898 #endif // wxUSE_COMBOBOX
900 // ----------------------------------------------------------------------------
902 // ----------------------------------------------------------------------------
906 void wxMonoRenderer::DrawMenuBarItem(wxDC
& WXUNUSED(dc
),
907 const wxRect
& WXUNUSED(rect
),
908 const wxString
& WXUNUSED(label
),
910 int WXUNUSED(indexAccel
))
912 wxFAIL_MSG(wxT("TODO"));
915 void wxMonoRenderer::DrawMenuItem(wxDC
& WXUNUSED(dc
),
917 const wxMenuGeometryInfo
& WXUNUSED(geometryInfo
),
918 const wxString
& WXUNUSED(label
),
919 const wxString
& WXUNUSED(accel
),
920 const wxBitmap
& WXUNUSED(bitmap
),
922 int WXUNUSED(indexAccel
))
924 wxFAIL_MSG(wxT("TODO"));
927 void wxMonoRenderer::DrawMenuSeparator(wxDC
& WXUNUSED(dc
),
929 const wxMenuGeometryInfo
& WXUNUSED(geomInfo
))
931 wxFAIL_MSG(wxT("TODO"));
934 wxSize
wxMonoRenderer::GetMenuBarItemSize(const wxSize
& WXUNUSED(sizeText
)) const
936 wxFAIL_MSG(wxT("TODO"));
941 wxMenuGeometryInfo
*wxMonoRenderer::GetMenuGeometry(wxWindow
*WXUNUSED(win
),
942 const wxMenu
& WXUNUSED(menu
)) const
944 wxFAIL_MSG(wxT("TODO"));
949 #endif // wxUSE_MENUS
951 // ----------------------------------------------------------------------------
953 // ----------------------------------------------------------------------------
957 void wxMonoRenderer::DrawSliderShaft(wxDC
& WXUNUSED(dc
),
958 const wxRect
& WXUNUSED(rect
),
959 int WXUNUSED(lenThumb
),
960 wxOrientation
WXUNUSED(orient
),
962 long WXUNUSED(style
),
963 wxRect
*WXUNUSED(rectShaft
))
965 wxFAIL_MSG(wxT("TODO"));
969 void wxMonoRenderer::DrawSliderThumb(wxDC
& WXUNUSED(dc
),
970 const wxRect
& WXUNUSED(rect
),
971 wxOrientation
WXUNUSED(orient
),
973 long WXUNUSED(style
))
975 wxFAIL_MSG(wxT("TODO"));
978 void wxMonoRenderer::DrawSliderTicks(wxDC
& WXUNUSED(dc
),
979 const wxRect
& WXUNUSED(rect
),
980 int WXUNUSED(lenThumb
),
981 wxOrientation
WXUNUSED(orient
),
986 long WXUNUSED(style
))
988 wxFAIL_MSG(wxT("TODO"));
991 wxCoord
wxMonoRenderer::GetSliderDim() const
993 wxFAIL_MSG(wxT("TODO"));
998 wxCoord
wxMonoRenderer::GetSliderTickLen() const
1000 wxFAIL_MSG(wxT("TODO"));
1006 wxRect
wxMonoRenderer::GetSliderShaftRect(const wxRect
& WXUNUSED(rect
),
1007 int WXUNUSED(lenThumb
),
1008 wxOrientation
WXUNUSED(orient
),
1009 long WXUNUSED(style
)) const
1011 wxFAIL_MSG(wxT("TODO"));
1016 wxSize
wxMonoRenderer::GetSliderThumbSize(const wxRect
& WXUNUSED(rect
),
1017 int WXUNUSED(lenThumb
),
1018 wxOrientation
WXUNUSED(orient
)) const
1020 wxFAIL_MSG(wxT("TODO"));
1025 #endif // wxUSE_SLIDER
1027 wxSize
wxMonoRenderer::GetProgressBarStep() const
1029 wxFAIL_MSG(wxT("TODO"));
1035 // ----------------------------------------------------------------------------
1037 // ----------------------------------------------------------------------------
1039 void wxMonoRenderer::DrawArrow(wxDC
& dc
,
1042 int WXUNUSED(flags
))
1044 ArrowDirection arrowDir
= GetArrowDirection(dir
);
1045 wxCHECK_RET( arrowDir
!= Arrow_Max
, wxT("invalid arrow direction") );
1047 wxBitmap
& bmp
= m_bmpArrows
[arrowDir
];
1050 bmp
= wxBitmap(ms_xpmArrows
[arrowDir
]);
1053 wxRect
rectArrow(0, 0, bmp
.GetWidth(), bmp
.GetHeight());
1054 dc
.DrawBitmap(bmp
, rectArrow
.CentreIn(rect
).GetPosition(), true /* use mask */);
1057 void wxMonoRenderer::DrawScrollbarThumb(wxDC
& dc
,
1058 wxOrientation
WXUNUSED(orient
),
1060 int WXUNUSED(flags
))
1062 DrawSolidRect(dc
, wxMONO_BG_COL
, rect
);
1064 // manually draw stipple pattern (wxDFB doesn't implement the wxSTIPPLE
1067 for ( wxCoord y
= rect
.GetTop(); y
<= rect
.GetBottom(); y
++ )
1069 for ( wxCoord x
= rect
.GetLeft() + (y
% 2); x
<= rect
.GetRight(); x
+=2 )
1076 void wxMonoRenderer::DrawScrollbarShaft(wxDC
& dc
,
1077 wxOrientation
WXUNUSED(orient
),
1079 int WXUNUSED(flags
))
1081 DrawSolidRect(dc
, wxMONO_BG_COL
, rect
);
1084 // ----------------------------------------------------------------------------
1086 // ----------------------------------------------------------------------------
1090 wxCoord
wxMonoRenderer::GetStatusBarBorderBetweenFields() const
1095 wxSize
wxMonoRenderer::GetStatusBarFieldMargins() const
1097 return wxSize(1, 1);
1100 #endif // wxUSE_STATUSBAR
1102 // ----------------------------------------------------------------------------
1103 // top level windows
1104 // ----------------------------------------------------------------------------
1106 int wxMonoRenderer::GetFrameBorderWidth(int WXUNUSED(flags
)) const
1108 // all our borders are simple
1112 // ----------------------------------------------------------------------------
1113 // wxMonoArtProvider
1114 // ----------------------------------------------------------------------------
1116 wxBitmap
wxMonoArtProvider::CreateBitmap(const wxArtID
& WXUNUSED(id
),
1117 const wxArtClient
& WXUNUSED(client
),
1118 const wxSize
& WXUNUSED(size
))
1120 return wxNullBitmap
;
1123 #endif // wxUSE_THEME_MONO