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_
22 class WXDLLIMPEXP_FWD_CORE wxDC
;
23 class WXDLLIMPEXP_FWD_CORE wxWindow
;
25 enum wxRibbonArtSetting
27 wxRIBBON_ART_TAB_SEPARATION_SIZE
,
28 wxRIBBON_ART_PAGE_BORDER_LEFT_SIZE
,
29 wxRIBBON_ART_PAGE_BORDER_TOP_SIZE
,
30 wxRIBBON_ART_PAGE_BORDER_RIGHT_SIZE
,
31 wxRIBBON_ART_PAGE_BORDER_BOTTOM_SIZE
,
32 wxRIBBON_ART_PANEL_X_SEPARATION_SIZE
,
33 wxRIBBON_ART_PANEL_Y_SEPARATION_SIZE
,
34 wxRIBBON_ART_TOOL_GROUP_SEPARATION_SIZE
,
35 wxRIBBON_ART_GALLERY_BITMAP_PADDING_LEFT_SIZE
,
36 wxRIBBON_ART_GALLERY_BITMAP_PADDING_RIGHT_SIZE
,
37 wxRIBBON_ART_GALLERY_BITMAP_PADDING_TOP_SIZE
,
38 wxRIBBON_ART_GALLERY_BITMAP_PADDING_BOTTOM_SIZE
,
39 wxRIBBON_ART_PANEL_LABEL_FONT
,
40 wxRIBBON_ART_BUTTON_BAR_LABEL_FONT
,
41 wxRIBBON_ART_TAB_LABEL_FONT
,
42 wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR
,
43 wxRIBBON_ART_BUTTON_BAR_HOVER_BORDER_COLOUR
,
44 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_COLOUR
,
45 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
46 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_COLOUR
,
47 wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_GRADIENT_COLOUR
,
48 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BORDER_COLOUR
,
49 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_TOP_COLOUR
,
50 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
51 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_COLOUR
,
52 wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
53 wxRIBBON_ART_GALLERY_BORDER_COLOUR
,
54 wxRIBBON_ART_GALLERY_HOVER_BACKGROUND_COLOUR
,
55 wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_COLOUR
,
56 wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_GRADIENT_COLOUR
,
57 wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_TOP_COLOUR
,
58 wxRIBBON_ART_GALLERY_BUTTON_FACE_COLOUR
,
59 wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_COLOUR
,
60 wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_GRADIENT_COLOUR
,
61 wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_TOP_COLOUR
,
62 wxRIBBON_ART_GALLERY_BUTTON_HOVER_FACE_COLOUR
,
63 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_COLOUR
,
64 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
65 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_TOP_COLOUR
,
66 wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_FACE_COLOUR
,
67 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_COLOUR
,
68 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_GRADIENT_COLOUR
,
69 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_TOP_COLOUR
,
70 wxRIBBON_ART_GALLERY_BUTTON_DISABLED_FACE_COLOUR
,
71 wxRIBBON_ART_GALLERY_ITEM_BORDER_COLOUR
,
72 wxRIBBON_ART_TAB_LABEL_COLOUR
,
73 wxRIBBON_ART_TAB_SEPARATOR_COLOUR
,
74 wxRIBBON_ART_TAB_SEPARATOR_GRADIENT_COLOUR
,
75 wxRIBBON_ART_TAB_CTRL_BACKGROUND_COLOUR
,
76 wxRIBBON_ART_TAB_CTRL_BACKGROUND_GRADIENT_COLOUR
,
77 wxRIBBON_ART_TAB_HOVER_BACKGROUND_TOP_COLOUR
,
78 wxRIBBON_ART_TAB_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
79 wxRIBBON_ART_TAB_HOVER_BACKGROUND_COLOUR
,
80 wxRIBBON_ART_TAB_HOVER_BACKGROUND_GRADIENT_COLOUR
,
81 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_COLOUR
,
82 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
83 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_COLOUR
,
84 wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
85 wxRIBBON_ART_TAB_BORDER_COLOUR
,
86 wxRIBBON_ART_PANEL_BORDER_COLOUR
,
87 wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR
,
88 wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR
,
89 wxRIBBON_ART_PANEL_MINIMISED_BORDER_GRADIENT_COLOUR
,
90 wxRIBBON_ART_PANEL_LABEL_BACKGROUND_COLOUR
,
91 wxRIBBON_ART_PANEL_LABEL_BACKGROUND_GRADIENT_COLOUR
,
92 wxRIBBON_ART_PANEL_LABEL_COLOUR
,
93 wxRIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_COLOUR
,
94 wxRIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_GRADIENT_COLOUR
,
95 wxRIBBON_ART_PANEL_HOVER_LABEL_COLOUR
,
96 wxRIBBON_ART_PANEL_MINIMISED_LABEL_COLOUR
,
97 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_TOP_COLOUR
,
98 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
99 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_COLOUR
,
100 wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
101 wxRIBBON_ART_PAGE_BORDER_COLOUR
,
102 wxRIBBON_ART_PAGE_BACKGROUND_TOP_COLOUR
,
103 wxRIBBON_ART_PAGE_BACKGROUND_TOP_GRADIENT_COLOUR
,
104 wxRIBBON_ART_PAGE_BACKGROUND_COLOUR
,
105 wxRIBBON_ART_PAGE_BACKGROUND_GRADIENT_COLOUR
,
106 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_TOP_COLOUR
,
107 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
108 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_COLOUR
,
109 wxRIBBON_ART_PAGE_HOVER_BACKGROUND_GRADIENT_COLOUR
,
110 wxRIBBON_ART_TOOLBAR_BORDER_COLOUR
,
111 wxRIBBON_ART_TOOLBAR_HOVER_BORDER_COLOUR
,
112 wxRIBBON_ART_TOOLBAR_FACE_COLOUR
,
113 wxRIBBON_ART_TOOL_BACKGROUND_TOP_COLOUR
,
114 wxRIBBON_ART_TOOL_BACKGROUND_TOP_GRADIENT_COLOUR
,
115 wxRIBBON_ART_TOOL_BACKGROUND_COLOUR
,
116 wxRIBBON_ART_TOOL_BACKGROUND_GRADIENT_COLOUR
,
117 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_COLOUR
,
118 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR
,
119 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_COLOUR
,
120 wxRIBBON_ART_TOOL_HOVER_BACKGROUND_GRADIENT_COLOUR
,
121 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_COLOUR
,
122 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR
,
123 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_COLOUR
,
124 wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR
,
127 enum wxRibbonScrollButtonStyle
129 wxRIBBON_SCROLL_BTN_LEFT
= 0,
130 wxRIBBON_SCROLL_BTN_RIGHT
= 1,
131 wxRIBBON_SCROLL_BTN_UP
= 2,
132 wxRIBBON_SCROLL_BTN_DOWN
= 3,
134 wxRIBBON_SCROLL_BTN_DIRECTION_MASK
= 3,
136 wxRIBBON_SCROLL_BTN_NORMAL
= 0,
137 wxRIBBON_SCROLL_BTN_HOVERED
= 4,
138 wxRIBBON_SCROLL_BTN_ACTIVE
= 8,
140 wxRIBBON_SCROLL_BTN_STATE_MASK
= 12,
142 wxRIBBON_SCROLL_BTN_FOR_OTHER
= 0,
143 wxRIBBON_SCROLL_BTN_FOR_TABS
= 16,
144 wxRIBBON_SCROLL_BTN_FOR_PAGE
= 32,
146 wxRIBBON_SCROLL_BTN_FOR_MASK
= 48,
149 enum wxRibbonButtonKind
151 wxRIBBON_BUTTON_NORMAL
= 1 << 0,
152 wxRIBBON_BUTTON_DROPDOWN
= 1 << 1,
153 wxRIBBON_BUTTON_HYBRID
= wxRIBBON_BUTTON_NORMAL
| wxRIBBON_BUTTON_DROPDOWN
,
156 enum wxRibbonButtonBarButtonState
158 wxRIBBON_BUTTONBAR_BUTTON_SMALL
= 0 << 0,
159 wxRIBBON_BUTTONBAR_BUTTON_MEDIUM
= 1 << 0,
160 wxRIBBON_BUTTONBAR_BUTTON_LARGE
= 2 << 0,
161 wxRIBBON_BUTTONBAR_BUTTON_SIZE_MASK
= 3 << 0,
163 wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED
= 1 << 3,
164 wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED
= 1 << 4,
165 wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK
= wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED
| wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED
,
166 wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE
= 1 << 5,
167 wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE
= 1 << 6,
168 wxRIBBON_BUTTONBAR_BUTTON_ACTIVE_MASK
= wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE
| wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE
,
169 wxRIBBON_BUTTONBAR_BUTTON_DISABLED
= 1 << 7,
170 wxRIBBON_BUTTONBAR_BUTTON_STATE_MASK
= 0xF8,
173 enum wxRibbonGalleryButtonState
175 wxRIBBON_GALLERY_BUTTON_NORMAL
,
176 wxRIBBON_GALLERY_BUTTON_HOVERED
,
177 wxRIBBON_GALLERY_BUTTON_ACTIVE
,
178 wxRIBBON_GALLERY_BUTTON_DISABLED
,
183 class wxRibbonGallery
;
184 class wxRibbonGalleryItem
;
185 class wxRibbonPageTabInfo
;
186 class wxRibbonPageTabInfoArray
;
188 class WXDLLIMPEXP_RIBBON wxRibbonArtProvider
191 wxRibbonArtProvider();
192 virtual ~wxRibbonArtProvider();
194 virtual wxRibbonArtProvider
* Clone() const = 0;
195 virtual void SetFlags(long flags
) = 0;
196 virtual long GetFlags() const = 0;
198 virtual int GetMetric(int id
) const = 0;
199 virtual void SetMetric(int id
, int new_val
) = 0;
200 virtual void SetFont(int id
, const wxFont
& font
) = 0;
201 virtual wxFont
GetFont(int id
) const = 0;
202 virtual wxColour
GetColour(int id
) const = 0;
203 virtual void SetColour(int id
, const wxColor
& colour
) = 0;
204 wxColour
GetColor(int id
) const { return GetColour(id
); }
205 void SetColor(int id
, const wxColour
& color
) { SetColour(id
, color
); }
206 virtual void GetColourScheme(wxColour
* primary
,
208 wxColour
* tertiary
) const = 0;
209 virtual void SetColourScheme(const wxColour
& primary
,
210 const wxColour
& secondary
,
211 const wxColour
& tertiary
) = 0;
213 virtual void DrawTabCtrlBackground(
216 const wxRect
& rect
) = 0;
218 virtual void DrawTab(wxDC
& dc
,
220 const wxRibbonPageTabInfo
& tab
) = 0;
222 virtual void DrawTabSeparator(wxDC
& dc
,
225 double visibility
) = 0;
227 virtual void DrawPageBackground(
230 const wxRect
& rect
) = 0;
232 virtual void DrawScrollButton(
238 virtual void DrawPanelBackground(
241 const wxRect
& rect
) = 0;
243 virtual void DrawGalleryBackground(
245 wxRibbonGallery
* wnd
,
246 const wxRect
& rect
) = 0;
248 virtual void DrawGalleryItemBackground(
250 wxRibbonGallery
* wnd
,
252 wxRibbonGalleryItem
* item
) = 0;
254 virtual void DrawMinimisedPanel(
258 wxBitmap
& bitmap
) = 0;
260 virtual void DrawButtonBarBackground(
263 const wxRect
& rect
) = 0;
265 virtual void DrawButtonBarButton(
269 wxRibbonButtonKind kind
,
271 const wxString
& label
,
272 const wxBitmap
& bitmap_large
,
273 const wxBitmap
& bitmap_small
) = 0;
275 virtual void DrawToolBarBackground(
278 const wxRect
& rect
) = 0;
280 virtual void DrawToolGroupBackground(
283 const wxRect
& rect
) = 0;
285 virtual void DrawTool(
289 const wxBitmap
& bitmap
,
290 wxRibbonButtonKind kind
,
293 virtual void GetBarTabWidth(
296 const wxString
& label
,
297 const wxBitmap
& bitmap
,
299 int* small_begin_need_separator
,
300 int* small_must_have_separator
,
303 virtual int GetTabCtrlHeight(
306 const wxRibbonPageTabInfoArray
& pages
) = 0;
308 virtual wxSize
GetScrollButtonMinimumSize(
313 virtual wxSize
GetPanelSize(
315 const wxRibbonPanel
* wnd
,
317 wxPoint
* client_offset
) = 0;
319 virtual wxSize
GetPanelClientSize(
321 const wxRibbonPanel
* wnd
,
323 wxPoint
* client_offset
) = 0;
325 virtual wxSize
GetGallerySize(
327 const wxRibbonGallery
* wnd
,
328 wxSize client_size
) = 0;
330 virtual wxSize
GetGalleryClientSize(
332 const wxRibbonGallery
* wnd
,
334 wxPoint
* client_offset
,
335 wxRect
* scroll_up_button
,
336 wxRect
* scroll_down_button
,
337 wxRect
* extension_button
) = 0;
339 virtual wxRect
GetPageBackgroundRedrawArea(
341 const wxRibbonPage
* wnd
,
342 wxSize page_old_size
,
343 wxSize page_new_size
) = 0;
345 virtual bool GetButtonBarButtonSize(
348 wxRibbonButtonKind kind
,
349 wxRibbonButtonBarButtonState size
,
350 const wxString
& label
,
351 wxSize bitmap_size_large
,
352 wxSize bitmap_size_small
,
354 wxRect
* normal_region
,
355 wxRect
* dropdown_region
) = 0;
357 virtual wxSize
GetMinimisedPanelMinimumSize(
359 const wxRibbonPanel
* wnd
,
360 wxSize
* desired_bitmap_size
,
361 wxDirection
* expanded_panel_direction
) = 0;
363 virtual wxSize
GetToolSize(
367 wxRibbonButtonKind kind
,
370 wxRect
* dropdown_region
) = 0;
373 class WXDLLIMPEXP_RIBBON wxRibbonMSWArtProvider
: public wxRibbonArtProvider
376 wxRibbonMSWArtProvider(bool set_colour_scheme
= true);
377 virtual ~wxRibbonMSWArtProvider();
379 wxRibbonArtProvider
* Clone() const;
380 void SetFlags(long flags
);
381 long GetFlags() const;
383 int GetMetric(int id
) const;
384 void SetMetric(int id
, int new_val
);
385 void SetFont(int id
, const wxFont
& font
);
386 wxFont
GetFont(int id
) const;
387 wxColour
GetColour(int id
) const;
388 void SetColour(int id
, const wxColor
& colour
);
389 void GetColourScheme(wxColour
* primary
,
391 wxColour
* tertiary
) const;
392 void SetColourScheme(const wxColour
& primary
,
393 const wxColour
& secondary
,
394 const wxColour
& tertiary
);
396 int GetTabCtrlHeight(
399 const wxRibbonPageTabInfoArray
& pages
);
401 void DrawTabCtrlBackground(
406 void DrawTab(wxDC
& dc
,
408 const wxRibbonPageTabInfo
& tab
);
410 void DrawTabSeparator(
416 void DrawPageBackground(
421 void DrawScrollButton(
427 void DrawPanelBackground(
432 void DrawGalleryBackground(
434 wxRibbonGallery
* wnd
,
437 void DrawGalleryItemBackground(
439 wxRibbonGallery
* wnd
,
441 wxRibbonGalleryItem
* item
);
443 void DrawMinimisedPanel(
449 void DrawButtonBarBackground(
454 void DrawButtonBarButton(
458 wxRibbonButtonKind kind
,
460 const wxString
& label
,
461 const wxBitmap
& bitmap_large
,
462 const wxBitmap
& bitmap_small
);
464 void DrawToolBarBackground(
469 void DrawToolGroupBackground(
478 const wxBitmap
& bitmap
,
479 wxRibbonButtonKind kind
,
485 const wxString
& label
,
486 const wxBitmap
& bitmap
,
488 int* small_begin_need_separator
,
489 int* small_must_have_separator
,
492 wxSize
GetScrollButtonMinimumSize(
499 const wxRibbonPanel
* wnd
,
501 wxPoint
* client_offset
);
503 wxSize
GetPanelClientSize(
505 const wxRibbonPanel
* wnd
,
507 wxPoint
* client_offset
);
509 wxSize
GetGallerySize(
511 const wxRibbonGallery
* wnd
,
514 wxSize
GetGalleryClientSize(
516 const wxRibbonGallery
* wnd
,
518 wxPoint
* client_offset
,
519 wxRect
* scroll_up_button
,
520 wxRect
* scroll_down_button
,
521 wxRect
* extension_button
);
523 wxRect
GetPageBackgroundRedrawArea(
525 const wxRibbonPage
* wnd
,
526 wxSize page_old_size
,
527 wxSize page_new_size
);
529 bool GetButtonBarButtonSize(
532 wxRibbonButtonKind kind
,
533 wxRibbonButtonBarButtonState size
,
534 const wxString
& label
,
535 wxSize bitmap_size_large
,
536 wxSize bitmap_size_small
,
538 wxRect
* normal_region
,
539 wxRect
* dropdown_region
);
541 wxSize
GetMinimisedPanelMinimumSize(
543 const wxRibbonPanel
* wnd
,
544 wxSize
* desired_bitmap_size
,
545 wxDirection
* expanded_panel_direction
);
551 wxRibbonButtonKind kind
,
554 wxRect
* dropdown_region
);
557 void ReallyDrawTabSeparator(wxWindow
* wnd
, const wxRect
& rect
, double visibility
);
558 void DrawPartialPageBackground(wxDC
& dc
, wxWindow
* wnd
, const wxRect
& rect
,
559 bool allow_hovered
= true);
560 void DrawPartialPageBackground(wxDC
& dc
, wxWindow
* wnd
, const wxRect
& rect
,
561 wxRibbonPage
* page
, wxPoint offset
, bool hovered
= false);
562 void DrawPanelBorder(wxDC
& dc
, const wxRect
& rect
, wxPen
& primary_colour
,
563 wxPen
& secondary_colour
);
564 void RemovePanelPadding(wxRect
* rect
);
565 void DrawDropdownArrow(wxDC
& dc
, int x
, int y
, const wxColour
& colour
);
566 void DrawGalleryBackgroundCommon(wxDC
& dc
, wxRibbonGallery
* wnd
,
568 virtual void DrawGalleryButton(wxDC
& dc
, wxRect rect
,
569 wxRibbonGalleryButtonState state
, wxBitmap
* bitmaps
);
570 void DrawButtonBarButtonForeground(
573 wxRibbonButtonKind kind
,
575 const wxString
& label
,
576 const wxBitmap
& bitmap_large
,
577 const wxBitmap
& bitmap_small
);
578 void DrawMinimisedPanelCommon(
582 wxRect
* preview_rect
);
583 void CloneTo(wxRibbonMSWArtProvider
* copy
) const;
585 wxBitmap m_cached_tab_separator
;
586 wxBitmap m_gallery_up_bitmap
[4];
587 wxBitmap m_gallery_down_bitmap
[4];
588 wxBitmap m_gallery_extension_bitmap
[4];
589 wxBitmap m_toolbar_drop_bitmap
;
591 wxColour m_primary_scheme_colour
;
592 wxColour m_secondary_scheme_colour
;
593 wxColour m_tertiary_scheme_colour
;
595 wxColour m_button_bar_label_colour
;
596 wxColour m_tab_label_colour
;
597 wxColour m_tab_separator_colour
;
598 wxColour m_tab_separator_gradient_colour
;
599 wxColour m_tab_active_background_colour
;
600 wxColour m_tab_active_background_gradient_colour
;
601 wxColour m_tab_hover_background_colour
;
602 wxColour m_tab_hover_background_gradient_colour
;
603 wxColour m_tab_hover_background_top_colour
;
604 wxColour m_tab_hover_background_top_gradient_colour
;
605 wxColour m_panel_label_colour
;
606 wxColour m_panel_minimised_label_colour
;
607 wxColour m_panel_hover_label_colour
;
608 wxColour m_panel_active_background_colour
;
609 wxColour m_panel_active_background_gradient_colour
;
610 wxColour m_panel_active_background_top_colour
;
611 wxColour m_panel_active_background_top_gradient_colour
;
612 wxColour m_page_background_colour
;
613 wxColour m_page_background_gradient_colour
;
614 wxColour m_page_background_top_colour
;
615 wxColour m_page_background_top_gradient_colour
;
616 wxColour m_page_hover_background_colour
;
617 wxColour m_page_hover_background_gradient_colour
;
618 wxColour m_page_hover_background_top_colour
;
619 wxColour m_page_hover_background_top_gradient_colour
;
620 wxColour m_button_bar_hover_background_colour
;
621 wxColour m_button_bar_hover_background_gradient_colour
;
622 wxColour m_button_bar_hover_background_top_colour
;
623 wxColour m_button_bar_hover_background_top_gradient_colour
;
624 wxColour m_button_bar_active_background_colour
;
625 wxColour m_button_bar_active_background_gradient_colour
;
626 wxColour m_button_bar_active_background_top_colour
;
627 wxColour m_button_bar_active_background_top_gradient_colour
;
628 wxColour m_gallery_button_background_colour
;
629 wxColour m_gallery_button_background_gradient_colour
;
630 wxColour m_gallery_button_hover_background_colour
;
631 wxColour m_gallery_button_hover_background_gradient_colour
;
632 wxColour m_gallery_button_active_background_colour
;
633 wxColour m_gallery_button_active_background_gradient_colour
;
634 wxColour m_gallery_button_disabled_background_colour
;
635 wxColour m_gallery_button_disabled_background_gradient_colour
;
636 wxColour m_gallery_button_face_colour
;
637 wxColour m_gallery_button_hover_face_colour
;
638 wxColour m_gallery_button_active_face_colour
;
639 wxColour m_gallery_button_disabled_face_colour
;
641 wxColour m_tool_face_colour
;
642 wxColour m_tool_background_top_colour
;
643 wxColour m_tool_background_top_gradient_colour
;
644 wxColour m_tool_background_colour
;
645 wxColour m_tool_background_gradient_colour
;
646 wxColour m_tool_hover_background_top_colour
;
647 wxColour m_tool_hover_background_top_gradient_colour
;
648 wxColour m_tool_hover_background_colour
;
649 wxColour m_tool_hover_background_gradient_colour
;
650 wxColour m_tool_active_background_top_colour
;
651 wxColour m_tool_active_background_top_gradient_colour
;
652 wxColour m_tool_active_background_colour
;
653 wxColour m_tool_active_background_gradient_colour
;
655 wxBrush m_tab_ctrl_background_brush
;
656 wxBrush m_panel_label_background_brush
;
657 wxBrush m_panel_hover_label_background_brush
;
658 wxBrush m_gallery_hover_background_brush
;
659 wxBrush m_gallery_button_background_top_brush
;
660 wxBrush m_gallery_button_hover_background_top_brush
;
661 wxBrush m_gallery_button_active_background_top_brush
;
662 wxBrush m_gallery_button_disabled_background_top_brush
;
664 wxFont m_tab_label_font
;
665 wxFont m_panel_label_font
;
666 wxFont m_button_bar_label_font
;
668 wxPen m_page_border_pen
;
669 wxPen m_panel_border_pen
;
670 wxPen m_panel_border_gradient_pen
;
671 wxPen m_panel_minimised_border_pen
;
672 wxPen m_panel_minimised_border_gradient_pen
;
673 wxPen m_tab_border_pen
;
674 wxPen m_button_bar_hover_border_pen
;
675 wxPen m_button_bar_active_border_pen
;
676 wxPen m_gallery_border_pen
;
677 wxPen m_gallery_item_border_pen
;
678 wxPen m_toolbar_border_pen
;
680 double m_cached_tab_separator_visibility
;
683 int m_tab_separation_size
;
684 int m_page_border_left
;
685 int m_page_border_top
;
686 int m_page_border_right
;
687 int m_page_border_bottom
;
688 int m_panel_x_separation_size
;
689 int m_panel_y_separation_size
;
690 int m_tool_group_separation_size
;
691 int m_gallery_bitmap_padding_left_size
;
692 int m_gallery_bitmap_padding_right_size
;
693 int m_gallery_bitmap_padding_top_size
;
694 int m_gallery_bitmap_padding_bottom_size
;
697 class WXDLLIMPEXP_RIBBON wxRibbonAUIArtProvider
: public wxRibbonMSWArtProvider
700 wxRibbonAUIArtProvider();
701 virtual ~wxRibbonAUIArtProvider();
703 wxRibbonArtProvider
* Clone() const;
705 wxColour
GetColour(int id
) const;
706 void SetColour(int id
, const wxColor
& colour
);
707 void SetColourScheme(const wxColour
& primary
,
708 const wxColour
& secondary
,
709 const wxColour
& tertiary
);
710 void SetFont(int id
, const wxFont
& font
);
712 wxSize
GetScrollButtonMinimumSize(
717 void DrawScrollButton(
725 const wxRibbonPanel
* wnd
,
727 wxPoint
* client_offset
);
729 wxSize
GetPanelClientSize(
731 const wxRibbonPanel
* wnd
,
733 wxPoint
* client_offset
);
735 void DrawTabCtrlBackground(
740 int GetTabCtrlHeight(
743 const wxRibbonPageTabInfoArray
& pages
);
748 const wxString
& label
,
749 const wxBitmap
& bitmap
,
751 int* small_begin_need_separator
,
752 int* small_must_have_separator
,
755 void DrawTab(wxDC
& dc
,
757 const wxRibbonPageTabInfo
& tab
);
759 void DrawTabSeparator(
765 void DrawPageBackground(
770 void DrawPanelBackground(
775 void DrawMinimisedPanel(
781 void DrawGalleryBackground(
783 wxRibbonGallery
* wnd
,
786 void DrawGalleryItemBackground(
788 wxRibbonGallery
* wnd
,
790 wxRibbonGalleryItem
* item
);
792 void DrawButtonBarBackground(
797 void DrawButtonBarButton(
801 wxRibbonButtonKind kind
,
803 const wxString
& label
,
804 const wxBitmap
& bitmap_large
,
805 const wxBitmap
& bitmap_small
);
807 void DrawToolBarBackground(
812 void DrawToolGroupBackground(
821 const wxBitmap
& bitmap
,
822 wxRibbonButtonKind kind
,
826 void DrawPartialPanelBackground(wxDC
& dc
, wxWindow
* wnd
,
828 void DrawGalleryButton(wxDC
& dc
, wxRect rect
,
829 wxRibbonGalleryButtonState state
, wxBitmap
* bitmaps
);
831 wxColour m_tab_ctrl_background_colour
;
832 wxColour m_tab_ctrl_background_gradient_colour
;
833 wxColour m_panel_label_background_colour
;
834 wxColour m_panel_label_background_gradient_colour
;
835 wxColour m_panel_hover_label_background_colour
;
836 wxColour m_panel_hover_label_background_gradient_colour
;
838 wxBrush m_background_brush
;
839 wxBrush m_tab_active_top_background_brush
;
840 wxBrush m_tab_hover_background_brush
;
841 wxBrush m_button_bar_hover_background_brush
;
842 wxBrush m_button_bar_active_background_brush
;
843 wxBrush m_gallery_button_active_background_brush
;
844 wxBrush m_gallery_button_hover_background_brush
;
845 wxBrush m_gallery_button_disabled_background_brush
;
846 wxBrush m_tool_hover_background_brush
;
847 wxBrush m_tool_active_background_brush
;
849 wxPen m_toolbar_hover_borden_pen
;
851 wxFont m_tab_active_label_font
;
854 #if defined(__WXMSW__)
855 typedef wxRibbonMSWArtProvider wxRibbonDefaultArtProvider
;
856 #elif defined(__WXOSX_CARBON__) || \
857 defined(__WXOSX_COCOA__) || \
858 defined(__WXOSX_IPHONE__) || \
860 // TODO: Once implemented, change typedef to OSX
861 // typedef wxRibbonOSXArtProvider wxRibbonDefaultArtProvider;
862 typedef wxRibbonAUIArtProvider wxRibbonDefaultArtProvider
;
864 // TODO: Once implemented, change typedef to AUI
865 typedef wxRibbonAUIArtProvider wxRibbonDefaultArtProvider
;
868 #endif // wxUSE_RIBBON
870 #endif // _WX_RIBBON_ART_H_