1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/ribbon/art.h
3 // Purpose: Art providers for ribbon-bar-style interface
4 // Author: Peter Cawley
8 // Copyright: (C) Peter Cawley
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_RIBBON_ART_H_
13 #define _WX_RIBBON_ART_H_
20 #include "wx/colour.h"
23 #include "wx/bitmap.h"
25 class WXDLLIMPEXP_FWD_CORE wxDC
;
26 class WXDLLIMPEXP_FWD_CORE wxWindow
;
28 enum wxRibbonArtSetting
30 wxRIBBON_ART_TAB_SEPARATION_SIZE
,
31 wxRIBBON_ART_PAGE_BORDER_LEFT_SIZE
,
32 wxRIBBON_ART_PAGE_BORDER_TOP_SIZE
,
33 wxRIBBON_ART_PAGE_BORDER_RIGHT_SIZE
,
34 wxRIBBON_ART_PAGE_BORDER_BOTTOM_SIZE
,
35 wxRIBBON_ART_PANEL_X_SEPARATION_SIZE
,
36 wxRIBBON_ART_PANEL_Y_SEPARATION_SIZE
,
37 wxRIBBON_ART_TOOL_GROUP_SEPARATION_SIZE
,
38 wxRIBBON_ART_GALLERY_BITMAP_PADDING_LEFT_SIZE
,
39 wxRIBBON_ART_GALLERY_BITMAP_PADDING_RIGHT_SIZE
,
40 wxRIBBON_ART_GALLERY_BITMAP_PADDING_TOP_SIZE
,
41 wxRIBBON_ART_GALLERY_BITMAP_PADDING_BOTTOM_SIZE
,
42 wxRIBBON_ART_PANEL_LABEL_FONT
,
43 wxRIBBON_ART_BUTTON_BAR_LABEL_FONT
,
44 wxRIBBON_ART_TAB_LABEL_FONT
,
45 wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR
,
46 wxRIBBON_ART_BUTTON_BAR_HOVER_BORDER_COLOUR
,
47 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_COLOUR
,
48 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
49 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_COLOUR
,
50 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_GRADIENT_COLOUR
,
51 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BORDER_COLOUR
,
52 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_TOP_COLOUR
,
53 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
54 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_COLOUR
,
55 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
56 wxRIBBON_ART_GALLERY_BORDER_COLOUR
,
57 wxRIBBON_ART_GALLERY_HOVER_BACKGROUND_COLOUR
,
58 wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_COLOUR
,
59 wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_GRADIENT_COLOUR
,
60 wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_TOP_COLOUR
,
61 wxRIBBON_ART_GALLERY_BUTTON_FACE_COLOUR
,
62 wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_COLOUR
,
63 wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_GRADIENT_COLOUR
,
64 wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_TOP_COLOUR
,
65 wxRIBBON_ART_GALLERY_BUTTON_HOVER_FACE_COLOUR
,
66 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_COLOUR
,
67 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
68 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_TOP_COLOUR
,
69 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_FACE_COLOUR
,
70 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_COLOUR
,
71 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_GRADIENT_COLOUR
,
72 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_TOP_COLOUR
,
73 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_FACE_COLOUR
,
74 wxRIBBON_ART_GALLERY_ITEM_BORDER_COLOUR
,
75 wxRIBBON_ART_TAB_LABEL_COLOUR
,
76 wxRIBBON_ART_TAB_SEPARATOR_COLOUR
,
77 wxRIBBON_ART_TAB_SEPARATOR_GRADIENT_COLOUR
,
78 wxRIBBON_ART_TAB_CTRL_BACKGROUND_COLOUR
,
79 wxRIBBON_ART_TAB_CTRL_BACKGROUND_GRADIENT_COLOUR
,
80 wxRIBBON_ART_TAB_HOVER_BACKGROUND_TOP_COLOUR
,
81 wxRIBBON_ART_TAB_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
82 wxRIBBON_ART_TAB_HOVER_BACKGROUND_COLOUR
,
83 wxRIBBON_ART_TAB_HOVER_BACKGROUND_GRADIENT_COLOUR
,
84 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_COLOUR
,
85 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
86 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_COLOUR
,
87 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
88 wxRIBBON_ART_TAB_BORDER_COLOUR
,
89 wxRIBBON_ART_PANEL_BORDER_COLOUR
,
90 wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR
,
91 wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR
,
92 wxRIBBON_ART_PANEL_MINIMISED_BORDER_GRADIENT_COLOUR
,
93 wxRIBBON_ART_PANEL_LABEL_BACKGROUND_COLOUR
,
94 wxRIBBON_ART_PANEL_LABEL_BACKGROUND_GRADIENT_COLOUR
,
95 wxRIBBON_ART_PANEL_LABEL_COLOUR
,
96 wxRIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_COLOUR
,
97 wxRIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_GRADIENT_COLOUR
,
98 wxRIBBON_ART_PANEL_HOVER_LABEL_COLOUR
,
99 wxRIBBON_ART_PANEL_MINIMISED_LABEL_COLOUR
,
100 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_TOP_COLOUR
,
101 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
102 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_COLOUR
,
103 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
104 wxRIBBON_ART_PANEL_BUTTON_FACE_COLOUR
,
105 wxRIBBON_ART_PANEL_BUTTON_HOVER_FACE_COLOUR
,
107 wxRIBBON_ART_PAGE_TOGGLE_FACE_COLOUR
,
108 wxRIBBON_ART_PAGE_TOGGLE_HOVER_FACE_COLOUR
,
110 wxRIBBON_ART_PAGE_BORDER_COLOUR
,
111 wxRIBBON_ART_PAGE_BACKGROUND_TOP_COLOUR
,
112 wxRIBBON_ART_PAGE_BACKGROUND_TOP_GRADIENT_COLOUR
,
113 wxRIBBON_ART_PAGE_BACKGROUND_COLOUR
,
114 wxRIBBON_ART_PAGE_BACKGROUND_GRADIENT_COLOUR
,
115 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_TOP_COLOUR
,
116 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
117 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_COLOUR
,
118 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_GRADIENT_COLOUR
,
119 wxRIBBON_ART_TOOLBAR_BORDER_COLOUR
,
120 wxRIBBON_ART_TOOLBAR_HOVER_BORDER_COLOUR
,
121 wxRIBBON_ART_TOOLBAR_FACE_COLOUR
,
122 wxRIBBON_ART_TOOL_BACKGROUND_TOP_COLOUR
,
123 wxRIBBON_ART_TOOL_BACKGROUND_TOP_GRADIENT_COLOUR
,
124 wxRIBBON_ART_TOOL_BACKGROUND_COLOUR
,
125 wxRIBBON_ART_TOOL_BACKGROUND_GRADIENT_COLOUR
,
126 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_COLOUR
,
127 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
128 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_COLOUR
,
129 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_GRADIENT_COLOUR
,
130 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_COLOUR
,
131 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
132 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_COLOUR
,
133 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR
136 enum wxRibbonScrollButtonStyle
138 wxRIBBON_SCROLL_BTN_LEFT
= 0,
139 wxRIBBON_SCROLL_BTN_RIGHT
= 1,
140 wxRIBBON_SCROLL_BTN_UP
= 2,
141 wxRIBBON_SCROLL_BTN_DOWN
= 3,
143 wxRIBBON_SCROLL_BTN_DIRECTION_MASK
= 3,
145 wxRIBBON_SCROLL_BTN_NORMAL
= 0,
146 wxRIBBON_SCROLL_BTN_HOVERED
= 4,
147 wxRIBBON_SCROLL_BTN_ACTIVE
= 8,
149 wxRIBBON_SCROLL_BTN_STATE_MASK
= 12,
151 wxRIBBON_SCROLL_BTN_FOR_OTHER
= 0,
152 wxRIBBON_SCROLL_BTN_FOR_TABS
= 16,
153 wxRIBBON_SCROLL_BTN_FOR_PAGE
= 32,
155 wxRIBBON_SCROLL_BTN_FOR_MASK
= 48
158 enum wxRibbonButtonKind
160 wxRIBBON_BUTTON_NORMAL
= 1 << 0,
161 wxRIBBON_BUTTON_DROPDOWN
= 1 << 1,
162 wxRIBBON_BUTTON_HYBRID
= wxRIBBON_BUTTON_NORMAL
| wxRIBBON_BUTTON_DROPDOWN
,
163 wxRIBBON_BUTTON_TOGGLE
= 1 << 2
166 enum wxRibbonButtonBarButtonState
168 wxRIBBON_BUTTONBAR_BUTTON_SMALL
= 0 << 0,
169 wxRIBBON_BUTTONBAR_BUTTON_MEDIUM
= 1 << 0,
170 wxRIBBON_BUTTONBAR_BUTTON_LARGE
= 2 << 0,
171 wxRIBBON_BUTTONBAR_BUTTON_SIZE_MASK
= 3 << 0,
173 wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED
= 1 << 3,
174 wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED
= 1 << 4,
175 wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK
= wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED
| wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED
,
176 wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE
= 1 << 5,
177 wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE
= 1 << 6,
178 wxRIBBON_BUTTONBAR_BUTTON_ACTIVE_MASK
= wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE
| wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE
,
179 wxRIBBON_BUTTONBAR_BUTTON_DISABLED
= 1 << 7,
180 wxRIBBON_BUTTONBAR_BUTTON_TOGGLED
= 1 << 8,
181 wxRIBBON_BUTTONBAR_BUTTON_STATE_MASK
= 0x1F8
184 enum wxRibbonGalleryButtonState
186 wxRIBBON_GALLERY_BUTTON_NORMAL
,
187 wxRIBBON_GALLERY_BUTTON_HOVERED
,
188 wxRIBBON_GALLERY_BUTTON_ACTIVE
,
189 wxRIBBON_GALLERY_BUTTON_DISABLED
195 class wxRibbonGallery
;
196 class wxRibbonGalleryItem
;
197 class wxRibbonPageTabInfo
;
198 class wxRibbonPageTabInfoArray
;
200 class WXDLLIMPEXP_RIBBON wxRibbonArtProvider
203 wxRibbonArtProvider();
204 virtual ~wxRibbonArtProvider();
206 virtual wxRibbonArtProvider
* Clone() const = 0;
207 virtual void SetFlags(long flags
) = 0;
208 virtual long GetFlags() const = 0;
210 virtual int GetMetric(int id
) const = 0;
211 virtual void SetMetric(int id
, int new_val
) = 0;
212 virtual void SetFont(int id
, const wxFont
& font
) = 0;
213 virtual wxFont
GetFont(int id
) const = 0;
214 virtual wxColour
GetColour(int id
) const = 0;
215 virtual void SetColour(int id
, const wxColor
& colour
) = 0;
216 wxColour
GetColor(int id
) const { return GetColour(id
); }
217 void SetColor(int id
, const wxColour
& color
) { SetColour(id
, color
); }
218 virtual void GetColourScheme(wxColour
* primary
,
220 wxColour
* tertiary
) const = 0;
221 virtual void SetColourScheme(const wxColour
& primary
,
222 const wxColour
& secondary
,
223 const wxColour
& tertiary
) = 0;
225 virtual void DrawTabCtrlBackground(
228 const wxRect
& rect
) = 0;
230 virtual void DrawTab(wxDC
& dc
,
232 const wxRibbonPageTabInfo
& tab
) = 0;
234 virtual void DrawTabSeparator(wxDC
& dc
,
237 double visibility
) = 0;
239 virtual void DrawPageBackground(
242 const wxRect
& rect
) = 0;
244 virtual void DrawScrollButton(
250 virtual void DrawPanelBackground(
253 const wxRect
& rect
) = 0;
255 virtual void DrawGalleryBackground(
257 wxRibbonGallery
* wnd
,
258 const wxRect
& rect
) = 0;
260 virtual void DrawGalleryItemBackground(
262 wxRibbonGallery
* wnd
,
264 wxRibbonGalleryItem
* item
) = 0;
266 virtual void DrawMinimisedPanel(
270 wxBitmap
& bitmap
) = 0;
272 virtual void DrawButtonBarBackground(
275 const wxRect
& rect
) = 0;
277 virtual void DrawButtonBarButton(
281 wxRibbonButtonKind kind
,
283 const wxString
& label
,
284 const wxBitmap
& bitmap_large
,
285 const wxBitmap
& bitmap_small
) = 0;
287 virtual void DrawToolBarBackground(
290 const wxRect
& rect
) = 0;
292 virtual void DrawToolGroupBackground(
295 const wxRect
& rect
) = 0;
297 virtual void DrawTool(
301 const wxBitmap
& bitmap
,
302 wxRibbonButtonKind kind
,
305 virtual void DrawToggleButton(
311 virtual void GetBarTabWidth(
314 const wxString
& label
,
315 const wxBitmap
& bitmap
,
317 int* small_begin_need_separator
,
318 int* small_must_have_separator
,
321 virtual int GetTabCtrlHeight(
324 const wxRibbonPageTabInfoArray
& pages
) = 0;
326 virtual wxSize
GetScrollButtonMinimumSize(
331 virtual wxSize
GetPanelSize(
333 const wxRibbonPanel
* wnd
,
335 wxPoint
* client_offset
) = 0;
337 virtual wxSize
GetPanelClientSize(
339 const wxRibbonPanel
* wnd
,
341 wxPoint
* client_offset
) = 0;
343 virtual wxRect
GetPanelExtButtonArea(
345 const wxRibbonPanel
* wnd
,
348 virtual wxSize
GetGallerySize(
350 const wxRibbonGallery
* wnd
,
351 wxSize client_size
) = 0;
353 virtual wxSize
GetGalleryClientSize(
355 const wxRibbonGallery
* wnd
,
357 wxPoint
* client_offset
,
358 wxRect
* scroll_up_button
,
359 wxRect
* scroll_down_button
,
360 wxRect
* extension_button
) = 0;
362 virtual wxRect
GetPageBackgroundRedrawArea(
364 const wxRibbonPage
* wnd
,
365 wxSize page_old_size
,
366 wxSize page_new_size
) = 0;
368 virtual bool GetButtonBarButtonSize(
371 wxRibbonButtonKind kind
,
372 wxRibbonButtonBarButtonState size
,
373 const wxString
& label
,
374 wxSize bitmap_size_large
,
375 wxSize bitmap_size_small
,
377 wxRect
* normal_region
,
378 wxRect
* dropdown_region
) = 0;
380 virtual wxSize
GetMinimisedPanelMinimumSize(
382 const wxRibbonPanel
* wnd
,
383 wxSize
* desired_bitmap_size
,
384 wxDirection
* expanded_panel_direction
) = 0;
386 virtual wxSize
GetToolSize(
390 wxRibbonButtonKind kind
,
393 wxRect
* dropdown_region
) = 0;
395 virtual wxRect
GetBarToggleButtonArea(wxDC
& dc
,
396 const wxRibbonBar
* wnd
,
400 class WXDLLIMPEXP_RIBBON wxRibbonMSWArtProvider
: public wxRibbonArtProvider
403 wxRibbonMSWArtProvider(bool set_colour_scheme
= true);
404 virtual ~wxRibbonMSWArtProvider();
406 wxRibbonArtProvider
* Clone() const;
407 void SetFlags(long flags
);
408 long GetFlags() const;
410 int GetMetric(int id
) const;
411 void SetMetric(int id
, int new_val
);
412 void SetFont(int id
, const wxFont
& font
);
413 wxFont
GetFont(int id
) const;
414 wxColour
GetColour(int id
) const;
415 void SetColour(int id
, const wxColor
& colour
);
416 void GetColourScheme(wxColour
* primary
,
418 wxColour
* tertiary
) const;
419 void SetColourScheme(const wxColour
& primary
,
420 const wxColour
& secondary
,
421 const wxColour
& tertiary
);
423 int GetTabCtrlHeight(
426 const wxRibbonPageTabInfoArray
& pages
);
428 void DrawTabCtrlBackground(
433 void DrawTab(wxDC
& dc
,
435 const wxRibbonPageTabInfo
& tab
);
437 void DrawTabSeparator(
443 void DrawPageBackground(
448 void DrawScrollButton(
454 void DrawPanelBackground(
459 void DrawGalleryBackground(
461 wxRibbonGallery
* wnd
,
464 void DrawGalleryItemBackground(
466 wxRibbonGallery
* wnd
,
468 wxRibbonGalleryItem
* item
);
470 void DrawMinimisedPanel(
476 void DrawButtonBarBackground(
481 void DrawButtonBarButton(
485 wxRibbonButtonKind kind
,
487 const wxString
& label
,
488 const wxBitmap
& bitmap_large
,
489 const wxBitmap
& bitmap_small
);
491 void DrawToolBarBackground(
496 void DrawToolGroupBackground(
505 const wxBitmap
& bitmap
,
506 wxRibbonButtonKind kind
,
509 void DrawToggleButton(
518 const wxString
& label
,
519 const wxBitmap
& bitmap
,
521 int* small_begin_need_separator
,
522 int* small_must_have_separator
,
525 wxSize
GetScrollButtonMinimumSize(
532 const wxRibbonPanel
* wnd
,
534 wxPoint
* client_offset
);
536 wxSize
GetPanelClientSize(
538 const wxRibbonPanel
* wnd
,
540 wxPoint
* client_offset
);
542 wxRect
GetPanelExtButtonArea(
544 const wxRibbonPanel
* wnd
,
547 wxSize
GetGallerySize(
549 const wxRibbonGallery
* wnd
,
552 wxSize
GetGalleryClientSize(
554 const wxRibbonGallery
* wnd
,
556 wxPoint
* client_offset
,
557 wxRect
* scroll_up_button
,
558 wxRect
* scroll_down_button
,
559 wxRect
* extension_button
);
561 wxRect
GetPageBackgroundRedrawArea(
563 const wxRibbonPage
* wnd
,
564 wxSize page_old_size
,
565 wxSize page_new_size
);
567 bool GetButtonBarButtonSize(
570 wxRibbonButtonKind kind
,
571 wxRibbonButtonBarButtonState size
,
572 const wxString
& label
,
573 wxSize bitmap_size_large
,
574 wxSize bitmap_size_small
,
576 wxRect
* normal_region
,
577 wxRect
* dropdown_region
);
579 wxSize
GetMinimisedPanelMinimumSize(
581 const wxRibbonPanel
* wnd
,
582 wxSize
* desired_bitmap_size
,
583 wxDirection
* expanded_panel_direction
);
589 wxRibbonButtonKind kind
,
592 wxRect
* dropdown_region
);
594 wxRect
GetBarToggleButtonArea(wxDC
& dc
,
595 const wxRibbonBar
* wnd
,
599 void ReallyDrawTabSeparator(wxWindow
* wnd
, const wxRect
& rect
, double visibility
);
600 void DrawPartialPageBackground(wxDC
& dc
, wxWindow
* wnd
, const wxRect
& rect
,
601 bool allow_hovered
= true);
602 void DrawPartialPageBackground(wxDC
& dc
, wxWindow
* wnd
, const wxRect
& rect
,
603 wxRibbonPage
* page
, wxPoint offset
, bool hovered
= false);
604 void DrawPanelBorder(wxDC
& dc
, const wxRect
& rect
, wxPen
& primary_colour
,
605 wxPen
& secondary_colour
);
606 void RemovePanelPadding(wxRect
* rect
);
607 void DrawDropdownArrow(wxDC
& dc
, int x
, int y
, const wxColour
& colour
);
608 void DrawGalleryBackgroundCommon(wxDC
& dc
, wxRibbonGallery
* wnd
,
610 virtual void DrawGalleryButton(wxDC
& dc
, wxRect rect
,
611 wxRibbonGalleryButtonState state
, wxBitmap
* bitmaps
);
612 void DrawButtonBarButtonForeground(
615 wxRibbonButtonKind kind
,
617 const wxString
& label
,
618 const wxBitmap
& bitmap_large
,
619 const wxBitmap
& bitmap_small
);
620 void DrawMinimisedPanelCommon(
624 wxRect
* preview_rect
);
625 void CloneTo(wxRibbonMSWArtProvider
* copy
) const;
627 wxBitmap m_cached_tab_separator
;
628 wxBitmap m_gallery_up_bitmap
[4];
629 wxBitmap m_gallery_down_bitmap
[4];
630 wxBitmap m_gallery_extension_bitmap
[4];
631 wxBitmap m_toolbar_drop_bitmap
;
632 wxBitmap m_panel_extension_bitmap
[2];
633 wxBitmap m_ribbon_toggle_up_bitmap
[2];
634 wxBitmap m_ribbon_toggle_down_bitmap
[2];
636 wxColour m_primary_scheme_colour
;
637 wxColour m_secondary_scheme_colour
;
638 wxColour m_tertiary_scheme_colour
;
640 wxColour m_button_bar_label_colour
;
641 wxColour m_tab_label_colour
;
642 wxColour m_tab_separator_colour
;
643 wxColour m_tab_separator_gradient_colour
;
644 wxColour m_tab_active_background_colour
;
645 wxColour m_tab_active_background_gradient_colour
;
646 wxColour m_tab_hover_background_colour
;
647 wxColour m_tab_hover_background_gradient_colour
;
648 wxColour m_tab_hover_background_top_colour
;
649 wxColour m_tab_hover_background_top_gradient_colour
;
650 wxColour m_panel_label_colour
;
651 wxColour m_panel_minimised_label_colour
;
652 wxColour m_panel_hover_label_colour
;
653 wxColour m_panel_active_background_colour
;
654 wxColour m_panel_active_background_gradient_colour
;
655 wxColour m_panel_active_background_top_colour
;
656 wxColour m_panel_active_background_top_gradient_colour
;
657 wxColour m_panel_button_face_colour
;
658 wxColour m_panel_button_hover_face_colour
;
659 wxColour m_page_toggle_face_colour
;
660 wxColour m_page_toggle_hover_face_colour
;
661 wxColour m_page_background_colour
;
662 wxColour m_page_background_gradient_colour
;
663 wxColour m_page_background_top_colour
;
664 wxColour m_page_background_top_gradient_colour
;
665 wxColour m_page_hover_background_colour
;
666 wxColour m_page_hover_background_gradient_colour
;
667 wxColour m_page_hover_background_top_colour
;
668 wxColour m_page_hover_background_top_gradient_colour
;
669 wxColour m_button_bar_hover_background_colour
;
670 wxColour m_button_bar_hover_background_gradient_colour
;
671 wxColour m_button_bar_hover_background_top_colour
;
672 wxColour m_button_bar_hover_background_top_gradient_colour
;
673 wxColour m_button_bar_active_background_colour
;
674 wxColour m_button_bar_active_background_gradient_colour
;
675 wxColour m_button_bar_active_background_top_colour
;
676 wxColour m_button_bar_active_background_top_gradient_colour
;
677 wxColour m_gallery_button_background_colour
;
678 wxColour m_gallery_button_background_gradient_colour
;
679 wxColour m_gallery_button_hover_background_colour
;
680 wxColour m_gallery_button_hover_background_gradient_colour
;
681 wxColour m_gallery_button_active_background_colour
;
682 wxColour m_gallery_button_active_background_gradient_colour
;
683 wxColour m_gallery_button_disabled_background_colour
;
684 wxColour m_gallery_button_disabled_background_gradient_colour
;
685 wxColour m_gallery_button_face_colour
;
686 wxColour m_gallery_button_hover_face_colour
;
687 wxColour m_gallery_button_active_face_colour
;
688 wxColour m_gallery_button_disabled_face_colour
;
690 wxColour m_tool_face_colour
;
691 wxColour m_tool_background_top_colour
;
692 wxColour m_tool_background_top_gradient_colour
;
693 wxColour m_tool_background_colour
;
694 wxColour m_tool_background_gradient_colour
;
695 wxColour m_tool_hover_background_top_colour
;
696 wxColour m_tool_hover_background_top_gradient_colour
;
697 wxColour m_tool_hover_background_colour
;
698 wxColour m_tool_hover_background_gradient_colour
;
699 wxColour m_tool_active_background_top_colour
;
700 wxColour m_tool_active_background_top_gradient_colour
;
701 wxColour m_tool_active_background_colour
;
702 wxColour m_tool_active_background_gradient_colour
;
704 wxBrush m_tab_ctrl_background_brush
;
705 wxBrush m_panel_label_background_brush
;
706 wxBrush m_panel_hover_label_background_brush
;
707 wxBrush m_panel_hover_button_background_brush
;
708 wxBrush m_gallery_hover_background_brush
;
709 wxBrush m_gallery_button_background_top_brush
;
710 wxBrush m_gallery_button_hover_background_top_brush
;
711 wxBrush m_gallery_button_active_background_top_brush
;
712 wxBrush m_gallery_button_disabled_background_top_brush
;
713 wxBrush m_ribbon_toggle_brush
;
715 wxFont m_tab_label_font
;
716 wxFont m_panel_label_font
;
717 wxFont m_button_bar_label_font
;
719 wxPen m_page_border_pen
;
720 wxPen m_panel_border_pen
;
721 wxPen m_panel_border_gradient_pen
;
722 wxPen m_panel_minimised_border_pen
;
723 wxPen m_panel_minimised_border_gradient_pen
;
724 wxPen m_panel_hover_button_border_pen
;
725 wxPen m_tab_border_pen
;
726 wxPen m_button_bar_hover_border_pen
;
727 wxPen m_button_bar_active_border_pen
;
728 wxPen m_gallery_border_pen
;
729 wxPen m_gallery_item_border_pen
;
730 wxPen m_toolbar_border_pen
;
731 wxPen m_ribbon_toggle_pen
;
733 double m_cached_tab_separator_visibility
;
736 int m_tab_separation_size
;
737 int m_page_border_left
;
738 int m_page_border_top
;
739 int m_page_border_right
;
740 int m_page_border_bottom
;
741 int m_panel_x_separation_size
;
742 int m_panel_y_separation_size
;
743 int m_tool_group_separation_size
;
744 int m_gallery_bitmap_padding_left_size
;
745 int m_gallery_bitmap_padding_right_size
;
746 int m_gallery_bitmap_padding_top_size
;
747 int m_gallery_bitmap_padding_bottom_size
;
750 class WXDLLIMPEXP_RIBBON wxRibbonAUIArtProvider
: public wxRibbonMSWArtProvider
753 wxRibbonAUIArtProvider();
754 virtual ~wxRibbonAUIArtProvider();
756 wxRibbonArtProvider
* Clone() const;
758 wxColour
GetColour(int id
) const;
759 void SetColour(int id
, const wxColor
& colour
);
760 void SetColourScheme(const wxColour
& primary
,
761 const wxColour
& secondary
,
762 const wxColour
& tertiary
);
763 void SetFont(int id
, const wxFont
& font
);
765 wxSize
GetScrollButtonMinimumSize(
770 void DrawScrollButton(
778 const wxRibbonPanel
* wnd
,
780 wxPoint
* client_offset
);
782 wxSize
GetPanelClientSize(
784 const wxRibbonPanel
* wnd
,
786 wxPoint
* client_offset
);
788 wxRect
GetPanelExtButtonArea(
790 const wxRibbonPanel
* wnd
,
793 void DrawTabCtrlBackground(
798 int GetTabCtrlHeight(
801 const wxRibbonPageTabInfoArray
& pages
);
806 const wxString
& label
,
807 const wxBitmap
& bitmap
,
809 int* small_begin_need_separator
,
810 int* small_must_have_separator
,
813 void DrawTab(wxDC
& dc
,
815 const wxRibbonPageTabInfo
& tab
);
817 void DrawTabSeparator(
823 void DrawPageBackground(
828 void DrawPanelBackground(
833 void DrawMinimisedPanel(
839 void DrawGalleryBackground(
841 wxRibbonGallery
* wnd
,
844 void DrawGalleryItemBackground(
846 wxRibbonGallery
* wnd
,
848 wxRibbonGalleryItem
* item
);
850 void DrawButtonBarBackground(
855 void DrawButtonBarButton(
859 wxRibbonButtonKind kind
,
861 const wxString
& label
,
862 const wxBitmap
& bitmap_large
,
863 const wxBitmap
& bitmap_small
);
865 void DrawToolBarBackground(
870 void DrawToolGroupBackground(
879 const wxBitmap
& bitmap
,
880 wxRibbonButtonKind kind
,
884 void DrawPartialPanelBackground(wxDC
& dc
, wxWindow
* wnd
,
886 void DrawGalleryButton(wxDC
& dc
, wxRect rect
,
887 wxRibbonGalleryButtonState state
, wxBitmap
* bitmaps
);
889 wxColour m_tab_ctrl_background_colour
;
890 wxColour m_tab_ctrl_background_gradient_colour
;
891 wxColour m_panel_label_background_colour
;
892 wxColour m_panel_label_background_gradient_colour
;
893 wxColour m_panel_hover_label_background_colour
;
894 wxColour m_panel_hover_label_background_gradient_colour
;
896 wxBrush m_background_brush
;
897 wxBrush m_tab_active_top_background_brush
;
898 wxBrush m_tab_hover_background_brush
;
899 wxBrush m_button_bar_hover_background_brush
;
900 wxBrush m_button_bar_active_background_brush
;
901 wxBrush m_gallery_button_active_background_brush
;
902 wxBrush m_gallery_button_hover_background_brush
;
903 wxBrush m_gallery_button_disabled_background_brush
;
904 wxBrush m_tool_hover_background_brush
;
905 wxBrush m_tool_active_background_brush
;
907 wxPen m_toolbar_hover_borden_pen
;
909 wxFont m_tab_active_label_font
;
912 #if defined(__WXMSW__)
913 typedef wxRibbonMSWArtProvider wxRibbonDefaultArtProvider
;
914 #elif defined(__WXOSX_CARBON__) || \
915 defined(__WXOSX_COCOA__) || \
916 defined(__WXOSX_IPHONE__) || \
918 // TODO: Once implemented, change typedef to OSX
919 // typedef wxRibbonOSXArtProvider wxRibbonDefaultArtProvider;
920 typedef wxRibbonAUIArtProvider wxRibbonDefaultArtProvider
;
922 // TODO: Once implemented, change typedef to AUI
923 typedef wxRibbonAUIArtProvider wxRibbonDefaultArtProvider
;
926 #endif // wxUSE_RIBBON
928 #endif // _WX_RIBBON_ART_H_