1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: src/univ/themes/mono.cpp
3 // Purpose: wxUniversal theme for monochrome displays
4 // Author: Vadim Zeitlin
7 // Copyright: (c) 2006 REA Elektronik GmbH
8 // Licence: wxWindows licence
9 ///////////////////////////////////////////////////////////////////////////////
11 // ===========================================================================
13 // ===========================================================================
15 // ---------------------------------------------------------------------------
17 // ---------------------------------------------------------------------------
19 // for compilers that support precompilation, includes "wx.h".
20 #include "wx/wxprec.h"
26 #include "wx/univ/theme.h"
31 #include "wx/window.h"
35 #include "wx/artprov.h"
36 #include "wx/univ/stdrend.h"
37 #include "wx/univ/inphand.h"
38 #include "wx/univ/colschem.h"
40 class wxMonoColourScheme
;
42 #define wxMONO_BG_COL (*wxWHITE)
43 #define wxMONO_FG_COL (*wxBLACK)
45 // ----------------------------------------------------------------------------
46 // wxMonoRenderer: draw the GUI elements in simplest possible way
47 // ----------------------------------------------------------------------------
49 // Warning: many of the methods here are not implemented, the code won't work
50 // if any but a few wxUSE_XXXs are on
51 class wxMonoRenderer
: public wxStdRenderer
54 wxMonoRenderer(const wxColourScheme
*scheme
);
56 virtual void DrawLabel(wxDC
& dc
,
57 const wxString
& label
,
60 int alignment
= wxALIGN_LEFT
| wxALIGN_TOP
,
62 wxRect
*rectBounds
= NULL
);
63 virtual void DrawButtonLabel(wxDC
& dc
,
64 const wxString
& label
,
65 const wxBitmap
& image
,
68 int alignment
= wxALIGN_LEFT
| wxALIGN_TOP
,
70 wxRect
*rectBounds
= NULL
);
72 virtual void DrawFocusRect(wxWindow
* win
, wxDC
& dc
, const wxRect
& rect
, int flags
= 0);
74 virtual void DrawButtonBorder(wxDC
& dc
,
77 wxRect
*rectIn
= NULL
);
79 virtual void DrawHorizontalLine(wxDC
& dc
,
80 wxCoord y
, wxCoord x1
, wxCoord x2
);
82 virtual void DrawVerticalLine(wxDC
& dc
,
83 wxCoord x
, wxCoord y1
, wxCoord y2
);
85 virtual void DrawArrow(wxDC
& dc
,
89 virtual void DrawScrollbarThumb(wxDC
& dc
,
93 virtual void DrawScrollbarShaft(wxDC
& dc
,
99 virtual void DrawToolBarButton(wxDC
& dc
,
100 const wxString
& label
,
101 const wxBitmap
& bitmap
,
106 #endif // wxUSE_TOOLBAR
109 virtual void DrawTab(wxDC
& dc
,
112 const wxString
& label
,
113 const wxBitmap
& bitmap
= wxNullBitmap
,
115 int indexAccel
= -1);
116 #endif // wxUSE_NOTEBOOK
119 virtual void DrawSliderShaft(wxDC
& dc
,
122 wxOrientation orient
,
125 wxRect
*rectShaft
= NULL
);
127 virtual void DrawSliderThumb(wxDC
& dc
,
129 wxOrientation orient
,
133 virtual void DrawSliderTicks(wxDC
& dc
,
136 wxOrientation orient
,
142 #endif // wxUSE_SLIDER
145 virtual void DrawMenuBarItem(wxDC
& dc
,
147 const wxString
& label
,
149 int indexAccel
= -1);
151 virtual void DrawMenuItem(wxDC
& dc
,
153 const wxMenuGeometryInfo
& geometryInfo
,
154 const wxString
& label
,
155 const wxString
& accel
,
156 const wxBitmap
& bitmap
= wxNullBitmap
,
158 int indexAccel
= -1);
160 virtual void DrawMenuSeparator(wxDC
& dc
,
162 const wxMenuGeometryInfo
& geomInfo
);
163 #endif // wxUSE_MENUS
166 virtual void GetComboBitmaps(wxBitmap
*bmpNormal
,
168 wxBitmap
*bmpPressed
,
169 wxBitmap
*bmpDisabled
);
170 #endif // wxUSE_COMBOBOX
173 virtual wxRect
GetBorderDimensions(wxBorder border
) const;
176 virtual wxSize
GetScrollbarArrowSize() const { return GetStdBmpSize(); }
177 #endif // wxUSE_SCROLLBAR
179 virtual wxSize
GetCheckBitmapSize() const { return GetStdBmpSize(); }
180 virtual wxSize
GetRadioBitmapSize() const { return GetStdBmpSize(); }
183 virtual wxSize
GetToolBarButtonSize(wxCoord
*separator
) const;
185 virtual wxSize
GetToolBarMargin() const;
186 #endif // wxUSE_TOOLBAR
189 virtual wxSize
GetTabIndent() const;
191 virtual wxSize
GetTabPadding() const;
192 #endif // wxUSE_NOTEBOOK
195 virtual wxCoord
GetSliderDim() const;
197 virtual wxCoord
GetSliderTickLen() const;
199 virtual wxRect
GetSliderShaftRect(const wxRect
& rect
,
201 wxOrientation orient
,
202 long style
= 0) const;
204 virtual wxSize
GetSliderThumbSize(const wxRect
& rect
,
206 wxOrientation orient
) const;
207 #endif // wxUSE_SLIDER
209 virtual wxSize
GetProgressBarStep() const;
212 virtual wxSize
GetMenuBarItemSize(const wxSize
& sizeText
) const;
214 virtual wxMenuGeometryInfo
*GetMenuGeometry(wxWindow
*win
,
215 const wxMenu
& menu
) const;
216 #endif // wxUSE_MENUS
219 virtual wxCoord
GetStatusBarBorderBetweenFields() const;
221 virtual wxSize
GetStatusBarFieldMargins() const;
222 #endif // wxUSE_STATUSBAR
225 // override base class border drawing routines: we always draw just a
226 // single simple border
227 void DrawSimpleBorder(wxDC
& dc
, wxRect
*rect
)
228 { DrawRect(dc
, rect
, m_penFg
); }
230 virtual void DrawRaisedBorder(wxDC
& dc
, wxRect
*rect
)
231 { DrawSimpleBorder(dc
, rect
); }
232 virtual void DrawSunkenBorder(wxDC
& dc
, wxRect
*rect
)
233 { DrawSimpleBorder(dc
, rect
); }
234 virtual void DrawAntiSunkenBorder(wxDC
& dc
, wxRect
*rect
)
235 { DrawSimpleBorder(dc
, rect
); }
236 virtual void DrawBoxBorder(wxDC
& dc
, wxRect
*rect
)
237 { DrawSimpleBorder(dc
, rect
); }
238 virtual void DrawStaticBorder(wxDC
& dc
, wxRect
*rect
)
239 { DrawSimpleBorder(dc
, rect
); }
240 virtual void DrawExtraBorder(wxDC
& WXUNUSED(dc
), wxRect
* WXUNUSED(rect
))
241 { /* no extra borders for us */ }
243 // all our XPMs are of this size
244 static wxSize
GetStdBmpSize() { return wxSize(8, 8); }
246 wxBitmap
GetIndicator(IndicatorType indType
, int flags
);
247 virtual wxBitmap
GetCheckBitmap(int flags
)
248 { return GetIndicator(IndicatorType_Check
, flags
); }
249 virtual wxBitmap
GetRadioBitmap(int flags
)
250 { return GetIndicator(IndicatorType_Radio
, flags
); }
252 virtual wxBitmap
GetFrameButtonBitmap(FrameButtonType type
);
253 virtual int GetFrameBorderWidth(int flags
) const;
256 // the bitmaps returned by GetIndicator()
257 wxBitmap m_bmpIndicators
[IndicatorType_MaxCtrl
]
258 [IndicatorState_MaxCtrl
]
259 [IndicatorStatus_Max
];
261 static const char **ms_xpmIndicators
[IndicatorType_MaxCtrl
]
262 [IndicatorState_MaxCtrl
]
263 [IndicatorStatus_Max
];
265 // the arrow bitmaps used by DrawArrow()
266 wxBitmap m_bmpArrows
[Arrow_Max
];
268 static const char **ms_xpmArrows
[Arrow_Max
];
270 // the close bitmap for the frame for GetFrameButtonBitmap()
271 wxBitmap m_bmpFrameClose
;
273 // pen used for foreground drawing
277 // ----------------------------------------------------------------------------
279 // ----------------------------------------------------------------------------
281 static const char *xpmUnchecked
[] = {
282 /* columns rows colors chars-per-pixel */
297 static const char *xpmChecked
[] = {
298 /* columns rows colors chars-per-pixel */
313 static const char *xpmUndeterminate
[] = {
314 /* columns rows colors chars-per-pixel */
329 static const char *xpmRadioUnchecked
[] = {
330 /* columns rows colors chars-per-pixel */
345 static const char *xpmRadioChecked
[] = {
346 /* columns rows colors chars-per-pixel */
361 const char **wxMonoRenderer::ms_xpmIndicators
[IndicatorType_MaxCtrl
]
362 [IndicatorState_MaxCtrl
]
363 [IndicatorStatus_Max
] =
368 { xpmChecked
, xpmUnchecked
, xpmUndeterminate
},
371 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
374 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
380 { xpmRadioChecked
, xpmRadioUnchecked
, xpmUndeterminate
},
383 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
386 { xpmUndeterminate
, xpmUndeterminate
, xpmUndeterminate
},
390 static const char *xpmLeftArrow
[] = {
391 /* columns rows colors chars-per-pixel */
406 static const char *xpmRightArrow
[] = {
407 /* columns rows colors chars-per-pixel */
422 static const char *xpmUpArrow
[] = {
423 /* columns rows colors chars-per-pixel */
438 static const char *xpmDownArrow
[] = {
439 /* columns rows colors chars-per-pixel */
454 const char **wxMonoRenderer::ms_xpmArrows
[Arrow_Max
] =
456 xpmLeftArrow
, xpmRightArrow
, xpmUpArrow
, xpmDownArrow
,
459 // ----------------------------------------------------------------------------
460 // wxMonoColourScheme: uses just white and black
461 // ----------------------------------------------------------------------------
463 class wxMonoColourScheme
: public wxColourScheme
466 // we use only 2 colours, white and black, but we avoid referring to them
467 // like this, instead use the functions below
468 wxColour
GetFg() const { return wxMONO_FG_COL
; }
469 wxColour
GetBg() const { return wxMONO_BG_COL
; }
471 // implement base class pure virtuals
472 virtual wxColour
Get(StdColour col
) const;
473 virtual wxColour
GetBackground(wxWindow
*win
) const;
476 // ----------------------------------------------------------------------------
478 // ----------------------------------------------------------------------------
480 class wxMonoArtProvider
: public wxArtProvider
483 virtual wxBitmap
CreateBitmap(const wxArtID
& id
,
484 const wxArtClient
& client
,
488 // ----------------------------------------------------------------------------
490 // ----------------------------------------------------------------------------
492 class wxMonoTheme
: public wxTheme
496 virtual ~wxMonoTheme();
498 virtual wxRenderer
*GetRenderer();
499 virtual wxArtProvider
*GetArtProvider();
500 virtual wxInputHandler
*GetInputHandler(const wxString
& control
,
501 wxInputConsumer
*consumer
);
502 virtual wxColourScheme
*GetColourScheme();
505 wxMonoRenderer
*m_renderer
;
506 wxMonoArtProvider
*m_artProvider
;
507 wxMonoColourScheme
*m_scheme
;
509 WX_DECLARE_THEME(mono
)
512 // ============================================================================
514 // ============================================================================
516 WX_IMPLEMENT_THEME(wxMonoTheme
, mono
, wxTRANSLATE("Simple monochrome theme"));
518 // ----------------------------------------------------------------------------
520 // ----------------------------------------------------------------------------
522 wxMonoTheme::wxMonoTheme()
526 m_artProvider
= NULL
;
529 wxMonoTheme::~wxMonoTheme()
533 delete m_artProvider
;
536 wxRenderer
*wxMonoTheme::GetRenderer()
540 m_renderer
= new wxMonoRenderer(GetColourScheme());
546 wxArtProvider
*wxMonoTheme::GetArtProvider()
548 if ( !m_artProvider
)
550 m_artProvider
= new wxMonoArtProvider
;
553 return m_artProvider
;
556 wxColourScheme
*wxMonoTheme::GetColourScheme()
560 m_scheme
= new wxMonoColourScheme
;
566 wxInputHandler
*wxMonoTheme::GetInputHandler(const wxString
& WXUNUSED(control
),
567 wxInputConsumer
*consumer
)
569 // no special input handlers so far
570 return consumer
->DoGetStdInputHandler(NULL
);
573 // ============================================================================
574 // wxMonoColourScheme
575 // ============================================================================
577 wxColour
wxMonoColourScheme::GetBackground(wxWindow
*win
) const
580 if ( win
->UseBgCol() )
582 // use the user specified colour
583 col
= win
->GetBackgroundColour();
586 // doesn't depend on the state
595 wxColour
wxMonoColourScheme::Get(wxMonoColourScheme::StdColour col
) const
601 case CONTROL_PRESSED
:
602 case CONTROL_CURRENT
:
604 case SCROLLBAR_PRESSED
:
607 case TITLEBAR_ACTIVE
:
615 wxFAIL_MSG(wxT("invalid standard colour"));
619 case SHADOW_HIGHLIGHT
:
623 case CONTROL_TEXT_DISABLED
:
624 case CONTROL_TEXT_DISABLED_SHADOW
:
626 case TITLEBAR_ACTIVE_TEXT
:
633 // ============================================================================
635 // ============================================================================
637 // ----------------------------------------------------------------------------
639 // ----------------------------------------------------------------------------
641 wxMonoRenderer::wxMonoRenderer(const wxColourScheme
*scheme
)
642 : wxStdRenderer(scheme
)
644 m_penFg
= wxPen(wxMONO_FG_COL
);
647 // ----------------------------------------------------------------------------
649 // ----------------------------------------------------------------------------
651 wxRect
wxMonoRenderer::GetBorderDimensions(wxBorder border
) const
656 case wxBORDER_SIMPLE
:
657 case wxBORDER_STATIC
:
658 case wxBORDER_RAISED
:
659 case wxBORDER_SUNKEN
:
664 case wxBORDER_DOUBLE:
669 wxFAIL_MSG(wxT("unknown border type"));
672 case wxBORDER_DEFAULT
:
687 void wxMonoRenderer::DrawButtonBorder(wxDC
& dc
,
692 DrawBorder(dc
, wxBORDER_SIMPLE
, rect
, flags
, rectIn
);
695 // ----------------------------------------------------------------------------
697 // ----------------------------------------------------------------------------
700 wxMonoRenderer::DrawHorizontalLine(wxDC
& dc
, wxCoord y
, wxCoord x1
, wxCoord x2
)
703 dc
.DrawLine(x1
, y
, x2
+ 1, y
);
707 wxMonoRenderer::DrawVerticalLine(wxDC
& dc
, wxCoord x
, wxCoord y1
, wxCoord y2
)
710 dc
.DrawLine(x
, y1
, x
, y2
+ 1);
713 void wxMonoRenderer::DrawFocusRect(wxWindow
* WXUNUSED(win
), wxDC
& dc
, const wxRect
& rect
, int flags
)
715 // no need to draw the focus rect for selected items, it would be invisible
717 if ( !(flags
& wxCONTROL_SELECTED
) )
720 dc
.SetBrush(*wxTRANSPARENT_BRUSH
);
721 dc
.DrawRectangle(rect
);
725 // ----------------------------------------------------------------------------
727 // ----------------------------------------------------------------------------
729 void wxMonoRenderer::DrawLabel(wxDC
& dc
,
730 const wxString
& label
,
737 dc
.DrawLabel(label
, wxNullBitmap
, rect
, alignment
, indexAccel
, rectBounds
);
740 void wxMonoRenderer::DrawButtonLabel(wxDC
& dc
,
741 const wxString
& label
,
742 const wxBitmap
& image
,
749 dc
.DrawLabel(label
, image
, rect
, alignment
, indexAccel
, rectBounds
);
751 if ( flags
& wxCONTROL_DISABLED
)
753 // this is ugly but I don't know how to show disabled button visually
754 // in monochrome theme otherwise, so cross it out
756 dc
.DrawLine(rect
.GetTopLeft(), rect
.GetBottomRight());
757 dc
.DrawLine(rect
.GetTopRight(), rect
.GetBottomLeft());
761 // ----------------------------------------------------------------------------
763 // ----------------------------------------------------------------------------
765 wxBitmap
wxMonoRenderer::GetIndicator(IndicatorType indType
, int flags
)
767 IndicatorState indState
;
768 IndicatorStatus indStatus
;
769 GetIndicatorsFromFlags(flags
, indState
, indStatus
);
771 wxBitmap
& bmp
= m_bmpIndicators
[indType
][indState
][indStatus
];
774 const char **xpm
= ms_xpmIndicators
[indType
][indState
][indStatus
];
777 // create and cache it
785 wxBitmap
wxMonoRenderer::GetFrameButtonBitmap(FrameButtonType type
)
787 if ( type
== FrameButton_Close
)
789 if ( !m_bmpFrameClose
.IsOk() )
791 static const char *xpmFrameClose
[] = {
792 /* columns rows colors chars-per-pixel */
807 m_bmpFrameClose
= wxBitmap(xpmFrameClose
);
810 return m_bmpFrameClose
;
813 // we don't show any other buttons than close
817 // ----------------------------------------------------------------------------
819 // ----------------------------------------------------------------------------
823 void wxMonoRenderer::DrawToolBarButton(wxDC
& WXUNUSED(dc
),
824 const wxString
& WXUNUSED(label
),
825 const wxBitmap
& WXUNUSED(bitmap
),
826 const wxRect
& WXUNUSED(rect
),
828 long WXUNUSED(style
),
829 int WXUNUSED(tbarStyle
))
831 wxFAIL_MSG(wxT("TODO"));
834 wxSize
wxMonoRenderer::GetToolBarButtonSize(wxCoord
*WXUNUSED(separator
)) const
836 wxFAIL_MSG(wxT("TODO"));
841 wxSize
wxMonoRenderer::GetToolBarMargin() const
843 wxFAIL_MSG(wxT("TODO"));
848 #endif // wxUSE_TOOLBAR
850 // ----------------------------------------------------------------------------
852 // ----------------------------------------------------------------------------
856 void wxMonoRenderer::DrawTab(wxDC
& WXUNUSED(dc
),
857 const wxRect
& WXUNUSED(rect
),
858 wxDirection
WXUNUSED(dir
),
859 const wxString
& WXUNUSED(label
),
860 const wxBitmap
& WXUNUSED(bitmap
),
862 int WXUNUSED(indexAccel
))
864 wxFAIL_MSG(wxT("TODO"));
867 wxSize
wxMonoRenderer::GetTabIndent() const
869 wxFAIL_MSG(wxT("TODO"));
874 wxSize
wxMonoRenderer::GetTabPadding() const
876 wxFAIL_MSG(wxT("TODO"));
881 #endif // wxUSE_NOTEBOOK
883 // ----------------------------------------------------------------------------
885 // ----------------------------------------------------------------------------
889 void wxMonoRenderer::GetComboBitmaps(wxBitmap
*WXUNUSED(bmpNormal
),
890 wxBitmap
*WXUNUSED(bmpFocus
),
891 wxBitmap
*WXUNUSED(bmpPressed
),
892 wxBitmap
*WXUNUSED(bmpDisabled
))
894 wxFAIL_MSG(wxT("TODO"));
897 #endif // wxUSE_COMBOBOX
899 // ----------------------------------------------------------------------------
901 // ----------------------------------------------------------------------------
905 void wxMonoRenderer::DrawMenuBarItem(wxDC
& WXUNUSED(dc
),
906 const wxRect
& WXUNUSED(rect
),
907 const wxString
& WXUNUSED(label
),
909 int WXUNUSED(indexAccel
))
911 wxFAIL_MSG(wxT("TODO"));
914 void wxMonoRenderer::DrawMenuItem(wxDC
& WXUNUSED(dc
),
916 const wxMenuGeometryInfo
& WXUNUSED(geometryInfo
),
917 const wxString
& WXUNUSED(label
),
918 const wxString
& WXUNUSED(accel
),
919 const wxBitmap
& WXUNUSED(bitmap
),
921 int WXUNUSED(indexAccel
))
923 wxFAIL_MSG(wxT("TODO"));
926 void wxMonoRenderer::DrawMenuSeparator(wxDC
& WXUNUSED(dc
),
928 const wxMenuGeometryInfo
& WXUNUSED(geomInfo
))
930 wxFAIL_MSG(wxT("TODO"));
933 wxSize
wxMonoRenderer::GetMenuBarItemSize(const wxSize
& WXUNUSED(sizeText
)) const
935 wxFAIL_MSG(wxT("TODO"));
940 wxMenuGeometryInfo
*wxMonoRenderer::GetMenuGeometry(wxWindow
*WXUNUSED(win
),
941 const wxMenu
& WXUNUSED(menu
)) const
943 wxFAIL_MSG(wxT("TODO"));
948 #endif // wxUSE_MENUS
950 // ----------------------------------------------------------------------------
952 // ----------------------------------------------------------------------------
956 void wxMonoRenderer::DrawSliderShaft(wxDC
& WXUNUSED(dc
),
957 const wxRect
& WXUNUSED(rect
),
958 int WXUNUSED(lenThumb
),
959 wxOrientation
WXUNUSED(orient
),
961 long WXUNUSED(style
),
962 wxRect
*WXUNUSED(rectShaft
))
964 wxFAIL_MSG(wxT("TODO"));
968 void wxMonoRenderer::DrawSliderThumb(wxDC
& WXUNUSED(dc
),
969 const wxRect
& WXUNUSED(rect
),
970 wxOrientation
WXUNUSED(orient
),
972 long WXUNUSED(style
))
974 wxFAIL_MSG(wxT("TODO"));
977 void wxMonoRenderer::DrawSliderTicks(wxDC
& WXUNUSED(dc
),
978 const wxRect
& WXUNUSED(rect
),
979 int WXUNUSED(lenThumb
),
980 wxOrientation
WXUNUSED(orient
),
985 long WXUNUSED(style
))
987 wxFAIL_MSG(wxT("TODO"));
990 wxCoord
wxMonoRenderer::GetSliderDim() const
992 wxFAIL_MSG(wxT("TODO"));
997 wxCoord
wxMonoRenderer::GetSliderTickLen() const
999 wxFAIL_MSG(wxT("TODO"));
1005 wxRect
wxMonoRenderer::GetSliderShaftRect(const wxRect
& WXUNUSED(rect
),
1006 int WXUNUSED(lenThumb
),
1007 wxOrientation
WXUNUSED(orient
),
1008 long WXUNUSED(style
)) const
1010 wxFAIL_MSG(wxT("TODO"));
1015 wxSize
wxMonoRenderer::GetSliderThumbSize(const wxRect
& WXUNUSED(rect
),
1016 int WXUNUSED(lenThumb
),
1017 wxOrientation
WXUNUSED(orient
)) const
1019 wxFAIL_MSG(wxT("TODO"));
1024 #endif // wxUSE_SLIDER
1026 wxSize
wxMonoRenderer::GetProgressBarStep() const
1028 wxFAIL_MSG(wxT("TODO"));
1034 // ----------------------------------------------------------------------------
1036 // ----------------------------------------------------------------------------
1038 void wxMonoRenderer::DrawArrow(wxDC
& dc
,
1041 int WXUNUSED(flags
))
1043 ArrowDirection arrowDir
= GetArrowDirection(dir
);
1044 wxCHECK_RET( arrowDir
!= Arrow_Max
, wxT("invalid arrow direction") );
1046 wxBitmap
& bmp
= m_bmpArrows
[arrowDir
];
1049 bmp
= wxBitmap(ms_xpmArrows
[arrowDir
]);
1052 wxRect
rectArrow(0, 0, bmp
.GetWidth(), bmp
.GetHeight());
1053 dc
.DrawBitmap(bmp
, rectArrow
.CentreIn(rect
).GetPosition(), true /* use mask */);
1056 void wxMonoRenderer::DrawScrollbarThumb(wxDC
& dc
,
1057 wxOrientation
WXUNUSED(orient
),
1059 int WXUNUSED(flags
))
1061 DrawSolidRect(dc
, wxMONO_BG_COL
, rect
);
1063 // manually draw stipple pattern (wxDFB doesn't implement the wxSTIPPLE
1066 for ( wxCoord y
= rect
.GetTop(); y
<= rect
.GetBottom(); y
++ )
1068 for ( wxCoord x
= rect
.GetLeft() + (y
% 2); x
<= rect
.GetRight(); x
+=2 )
1075 void wxMonoRenderer::DrawScrollbarShaft(wxDC
& dc
,
1076 wxOrientation
WXUNUSED(orient
),
1078 int WXUNUSED(flags
))
1080 DrawSolidRect(dc
, wxMONO_BG_COL
, rect
);
1083 // ----------------------------------------------------------------------------
1085 // ----------------------------------------------------------------------------
1089 wxCoord
wxMonoRenderer::GetStatusBarBorderBetweenFields() const
1094 wxSize
wxMonoRenderer::GetStatusBarFieldMargins() const
1096 return wxSize(1, 1);
1099 #endif // wxUSE_STATUSBAR
1101 // ----------------------------------------------------------------------------
1102 // top level windows
1103 // ----------------------------------------------------------------------------
1105 int wxMonoRenderer::GetFrameBorderWidth(int WXUNUSED(flags
)) const
1107 // all our borders are simple
1111 // ----------------------------------------------------------------------------
1112 // wxMonoArtProvider
1113 // ----------------------------------------------------------------------------
1115 wxBitmap
wxMonoArtProvider::CreateBitmap(const wxArtID
& WXUNUSED(id
),
1116 const wxArtClient
& WXUNUSED(client
),
1117 const wxSize
& WXUNUSED(size
))
1119 return wxNullBitmap
;
1122 #endif // wxUSE_THEME_MONO