1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: wx/aui/toolbar.h
3 // Purpose: Documentation of wxAuiToolBar and related classes.
6 // Copyright: (c) 2011 wxWidgets development team
7 // Licence: wxWindows licence
8 ///////////////////////////////////////////////////////////////////////////////
11 wxAuiToolBarStyle is part of the wxAUI class framework, used to define the appearance of a wxAuiToolBar.
13 See also @ref overview_aui.
18 enum wxAuiToolBarStyle
21 Shows the text in the toolbar buttons; by default only icons are shown.
23 wxAUI_TB_TEXT
= 1 << 0,
26 Don't show tooltips on wxAuiToolBar items.
28 wxAUI_TB_NO_TOOLTIPS
= 1 << 1,
31 Do not auto-resize the wxAuiToolBar.
33 wxAUI_TB_NO_AUTORESIZE
= 1 << 2,
36 Shows a gripper on the wxAuiToolBar.
38 wxAUI_TB_GRIPPER
= 1 << 3,
41 The wxAuiToolBar can contain overflow items.
43 wxAUI_TB_OVERFLOW
= 1 << 4,
46 Using this style forces the toolbar to be vertical and be only dockable to the left or right sides of the window whereas by default it can be horizontal or vertical and be docked anywhere.
48 wxAUI_TB_VERTICAL
= 1 << 5,
51 Shows the text and the icons alongside, not vertically stacked. This style must be used with wxAUI_TB_TEXT
53 wxAUI_TB_HORZ_LAYOUT
= 1 << 6,
56 Analogous to wxAUI_TB_VERTICAL, but forces the toolbar to be horizontal, docking to the top or bottom of the window.
58 wxAUI_TB_HORIZONTAL
= 1 << 7,
61 Shows the text alongside the icons, not vertically stacked.
63 wxAUI_TB_HORZ_TEXT
= (wxAUI_TB_HORZ_LAYOUT
| wxAUI_TB_TEXT
),
66 Shows the text in the toolbar buttons; by default only icons are shown.
68 wxAUI_ORIENTATION_MASK
= (wxAUI_TB_VERTICAL
| wxAUI_TB_HORIZONTAL
),
71 By default only icons are shown.
73 wxAUI_TB_DEFAULT_STYLE
= 0
78 wxAuiToolBarArtSetting
83 enum wxAuiToolBarArtSetting
86 wxAuiToolBar seperator size.
88 wxAUI_TBART_SEPARATOR_SIZE
= 0,
91 wxAuiToolBar gripper size.
93 wxAUI_TBART_GRIPPER_SIZE
= 1,
96 Overflow button size in wxAuiToolBar.
98 wxAUI_TBART_OVERFLOW_SIZE
= 2
103 wxAuiToolBarToolTextOrientation
108 enum wxAuiToolBarToolTextOrientation
111 Text in wxAuiToolBar items is left aligned, currently unused/unimplemented.
113 wxAUI_TBTOOL_TEXT_LEFT
= 0,
116 Text in wxAuiToolBar items is right aligned.
118 wxAUI_TBTOOL_TEXT_RIGHT
= 1,
121 Text in wxAuiToolBar items is top aligned, currently unused/unimplemented.
123 wxAUI_TBTOOL_TEXT_TOP
= 2,
126 Text in wxAuiToolBar items is bottom aligned.
128 wxAUI_TBTOOL_TEXT_BOTTOM
= 3
134 @class wxAuiToolBarEvent
136 wxAuiToolBarEvent is used for the events generated by @ref wxAuiToolBar.
141 class wxAuiToolBarEvent
: public wxNotifyEvent
145 Returns whether the drop down menu has been clicked.
147 bool IsDropDownClicked() const;
150 Returns the point where the user clicked with the mouse.
152 wxPoint
GetClickPoint() const;
155 Returns the wxAuiToolBarItem rectangle bounding the mouse click point.
157 wxRect
GetItemRect() const;
160 Returns the wxAuiToolBarItem identifier.
162 int GetToolId() const;
167 @class wxAuiToolBarItem
169 wxAuiToolBarItem is part of the wxAUI class framework, representing a toolbar element.
171 See also @ref wxAuiToolBar and @ref overview_aui.
173 It has a unique id (except for the separators which always have id = -1), the
174 style (telling whether it is a normal button, separator or a control), the
175 state (toggled or not, enabled or not) and short and long help strings. The
176 default implementations use the short help string for the tooltip text which
177 is popped up when the mouse pointer enters the tool and the long help string
178 for the applications status bar (currently not implemented).
183 class wxAuiToolBarItem
193 Assigns the properties of the wxAuiToolBarItem "c" to this.
195 wxAuiToolBarItem(const wxAuiToolBarItem
& c
);
198 Assigns the properties of the wxAuiToolBarItem "c" to this, returning a pointer to this.
200 wxAuiToolBarItem
& operator=(const wxAuiToolBarItem
& c
);
203 Assigns the properties of the wxAuiToolBarItem "c" to this.
205 void Assign(const wxAuiToolBarItem
& c
);
208 Assigns a window to the toolbar item.
210 void SetWindow(wxWindow
* w
);
212 Returns the wxWindow* associated to the toolbar item.
214 wxWindow
* GetWindow();
217 Sets the toolbar item identifier.
219 void SetId(int new_id
);
221 Returns the toolbar item identifier.
226 Sets the wxAuiToolBarItem kind.
228 void SetKind(int new_kind
);
231 Returns the toolbar item kind.
238 void SetState(int new_state
);
242 int GetState() const;
247 void SetSizerItem(wxSizerItem
* s
);
251 wxSizerItem
* GetSizerItem() const;
256 void SetLabel(const wxString
& s
);
260 const wxString
& GetLabel() const;
265 void SetBitmap(const wxBitmap
& bmp
);
269 const wxBitmap
& GetBitmap() const;
274 void SetDisabledBitmap(const wxBitmap
& bmp
);
278 const wxBitmap
& GetDisabledBitmap() const;
283 void SetHoverBitmap(const wxBitmap
& bmp
);
287 const wxBitmap
& GetHoverBitmap() const;
292 void SetShortHelp(const wxString
& s
);
296 const wxString
& GetShortHelp() const;
301 void SetLongHelp(const wxString
& s
);
305 const wxString
& GetLongHelp() const;
310 void SetMinSize(const wxSize
& s
);
314 const wxSize
& GetMinSize() const;
319 void SetSpacerPixels(int s
);
323 int GetSpacerPixels() const;
328 void SetProportion(int p
);
332 int GetProportion() const;
337 void SetActive(bool b
);
341 bool IsActive() const;
344 Set whether this tool has a drop down button.
346 This is only valid for wxITEM_NORMAL tools.
348 void SetHasDropDown(bool b
);
350 Returns whether the toolbar item has an associated drop down button.
352 bool HasDropDown() const;
357 void SetSticky(bool b
);
361 bool IsSticky() const;
366 void SetUserData(long l
);
370 long GetUserData() const;
375 void SetAlignment(int l
);
379 int GetAlignment() const;
383 @class wxAuiToolBarArt
385 wxAuiToolBarArt is part of the wxAUI class framework.
386 See also @ref wxAuiToolBar and @ref overview_aui.
391 class wxAuiToolBarArt
396 virtual wxAuiToolBarArt
* Clone() = 0;
397 virtual void SetFlags(unsigned int flags
) = 0;
398 virtual unsigned int GetFlags() = 0;
399 virtual void SetFont(const wxFont
& font
) = 0;
400 virtual wxFont
GetFont() = 0;
401 virtual void SetTextOrientation(int orientation
) = 0;
402 virtual int GetTextOrientation() = 0;
404 virtual void DrawBackground(
407 const wxRect
& rect
) = 0;
409 virtual void DrawLabel(
412 const wxAuiToolBarItem
& item
,
413 const wxRect
& rect
) = 0;
415 virtual void DrawButton(
418 const wxAuiToolBarItem
& item
,
419 const wxRect
& rect
) = 0;
421 virtual void DrawDropDownButton(
424 const wxAuiToolBarItem
& item
,
425 const wxRect
& rect
) = 0;
427 virtual void DrawControlLabel(
430 const wxAuiToolBarItem
& item
,
431 const wxRect
& rect
) = 0;
433 virtual void DrawSeparator(
436 const wxRect
& rect
) = 0;
438 virtual void DrawGripper(
441 const wxRect
& rect
) = 0;
443 virtual void DrawOverflowButton(
449 virtual wxSize
GetLabelSize(
452 const wxAuiToolBarItem
& item
) = 0;
454 virtual wxSize
GetToolSize(
457 const wxAuiToolBarItem
& item
) = 0;
459 virtual int GetElementSize(int element_id
) = 0;
460 virtual void SetElementSize(int element_id
, int size
) = 0;
462 virtual int ShowDropDown(
464 const wxAuiToolBarItemArray
& items
) = 0;
469 @class wxAuiDefaultToolBarArt
471 wxAuiDefaultToolBarArt is part of the wxAUI class framework.
472 See also @ref wxAuiToolBarArt , @ref wxAuiToolBar and @ref overview_aui.
477 class wxAuiDefaultToolBarArt
: public wxAuiToolBarArt
480 wxAuiDefaultToolBarArt();
481 virtual ~wxAuiDefaultToolBarArt();
483 virtual wxAuiToolBarArt
* Clone();
484 virtual void SetFlags(unsigned int flags
);
485 virtual unsigned int GetFlags();
486 virtual void SetFont(const wxFont
& font
);
487 virtual wxFont
GetFont();
488 virtual void SetTextOrientation(int orientation
);
489 virtual int GetTextOrientation();
491 virtual void DrawBackground(
496 virtual void DrawLabel(
499 const wxAuiToolBarItem
& item
,
502 virtual void DrawButton(
505 const wxAuiToolBarItem
& item
,
508 virtual void DrawDropDownButton(
511 const wxAuiToolBarItem
& item
,
514 virtual void DrawControlLabel(
517 const wxAuiToolBarItem
& item
,
520 virtual void DrawSeparator(
525 virtual void DrawGripper(
530 virtual void DrawOverflowButton(
536 virtual wxSize
GetLabelSize(
539 const wxAuiToolBarItem
& item
);
541 virtual wxSize
GetToolSize(
544 const wxAuiToolBarItem
& item
);
546 virtual int GetElementSize(int element
);
547 virtual void SetElementSize(int element_id
, int size
);
549 virtual int ShowDropDown(wxWindow
* wnd
,
550 const wxAuiToolBarItemArray
& items
);
558 wxAuiToolBar is a dockable toolbar, part of the wxAUI class framework.
559 See also @ref overview_aui.
562 @style{wxAUI_TB_TEXT}
563 @style{wxAUI_TB_NO_TOOLTIPS}
564 @style{wxAUI_TB_NO_AUTORESIZE}
565 @style{wxAUI_TB_GRIPPER}
566 @style{wxAUI_TB_OVERFLOW}
567 @style{wxAUI_TB_VERTICAL}
568 using this style forces the toolbar to be vertical and
569 be only dockable to the left or right sides of the window
570 whereas by default it can be horizontal or vertical and
572 @style{wxAUI_TB_HORZ_LAYOUT}
573 @style{wxAUI_TB_HORIZONTAL}
574 analogous to wxAUI_TB_VERTICAL, but forces the toolbar
576 @style{wxAUI_TB_HORZ_TEXT}
577 Equivalent to wxAUI_TB_HORZ_LAYOUT | wxAUI_TB_TEXT
578 @style{wxAUI_TB_DEFAULT_STYLE}
579 The default is to have no styles
582 @beginEventEmissionTable{wxAuiToolBarEvent}
583 @event{EVT_AUITOOLBAR_TOOL_DROPDOWN(id, func)}
584 Process a wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN event
585 @event{EVT_AUITOOLBAR_OVERFLOW_CLICK(id, func)}
586 Process a wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK event
587 @event{EVT_AUITOOLBAR_RIGHT_CLICK(id, func)}
588 Process a wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK event
589 @event{EVT_AUITOOLBAR_MIDDLE_CLICK(id, func)}
590 Process a wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK event
591 @event{EVT_AUITOOLBAR_BEGIN_DRAG(id, func)}
592 Process a wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG event
598 class wxAuiToolBar
: public wxControl
602 Default constructor, use Create() later.
609 Constructor creating and initializing the object.
611 wxAuiToolBar(wxWindow
* parent
,
612 wxWindowID id
= wxID_ANY
,
613 const wxPoint
& position
= wxDefaultPosition
,
614 const wxSize
& size
= wxDefaultSize
,
615 long style
= wxAUI_TB_DEFAULT_STYLE
);
618 Really create wxAuiToolBar created using default constructor.
622 bool Create(wxWindow
* parent
,
623 wxWindowID id
= wxID_ANY
,
624 const wxPoint
& pos
= wxDefaultPosition
,
625 const wxSize
& size
= wxDefaultSize
,
626 long style
= wxAUI_TB_DEFAULT_STYLE
);
627 virtual ~wxAuiToolBar();
629 void SetWindowStyleFlag(long style
);
630 long GetWindowStyleFlag() const;
632 void SetArtProvider(wxAuiToolBarArt
* art
);
633 wxAuiToolBarArt
* GetArtProvider() const;
635 bool SetFont(const wxFont
& font
);
638 wxAuiToolBarItem
* AddTool(int tool_id
,
639 const wxString
& label
,
640 const wxBitmap
& bitmap
,
641 const wxString
& short_help_string
= wxEmptyString
,
642 wxItemKind kind
= wxITEM_NORMAL
);
644 wxAuiToolBarItem
* AddTool(int tool_id
,
645 const wxString
& label
,
646 const wxBitmap
& bitmap
,
647 const wxBitmap
& disabled_bitmap
,
649 const wxString
& short_help_string
,
650 const wxString
& long_help_string
,
651 wxObject
* client_data
);
653 wxAuiToolBarItem
* AddTool(int tool_id
,
654 const wxBitmap
& bitmap
,
655 const wxBitmap
& disabled_bitmap
,
657 wxObject
* client_data
= NULL
,
658 const wxString
& short_help_string
= wxEmptyString
,
659 const wxString
& long_help_string
= wxEmptyString
);
661 wxAuiToolBarItem
* AddLabel(int tool_id
,
662 const wxString
& label
= wxEmptyString
,
663 const int width
= -1);
664 wxAuiToolBarItem
* AddControl(wxControl
* control
,
665 const wxString
& label
= wxEmptyString
);
666 wxAuiToolBarItem
* AddSeparator();
667 wxAuiToolBarItem
* AddSpacer(int pixels
);
668 wxAuiToolBarItem
* AddStretchSpacer(int proportion
= 1);
672 wxControl
* FindControl(int window_id
);
673 wxAuiToolBarItem
* FindToolByPosition(wxCoord x
, wxCoord y
) const;
674 wxAuiToolBarItem
* FindToolByIndex(int idx
) const;
675 wxAuiToolBarItem
* FindTool(int tool_id
) const;
679 bool DeleteTool(int tool_id
);
680 bool DeleteByIndex(int tool_id
);
682 size_t GetToolCount() const;
683 int GetToolPos(int tool_id
) const;
684 int GetToolIndex(int tool_id
) const;
685 bool GetToolFits(int tool_id
) const;
686 wxRect
GetToolRect(int tool_id
) const;
687 bool GetToolFitsByIndex(int tool_id
) const;
688 bool GetToolBarFits() const;
690 void SetMargins(const wxSize
& size
);
691 void SetMargins(int x
, int y
);
692 void SetMargins(int left
, int right
, int top
, int bottom
);
694 void SetToolBitmapSize(const wxSize
& size
);
695 wxSize
GetToolBitmapSize() const;
697 bool GetOverflowVisible() const;
698 void SetOverflowVisible(bool visible
);
700 bool GetGripperVisible() const;
701 void SetGripperVisible(bool visible
);
703 void ToggleTool(int tool_id
, bool state
);
704 bool GetToolToggled(int tool_id
) const;
706 void EnableTool(int tool_id
, bool state
);
707 bool GetToolEnabled(int tool_id
) const;
710 Set whether the specified toolbar item has a drop down button.
712 This is only valid for wxITEM_NORMAL tools.
714 @see wxAuiToolBarItem::SetHasDropDown()
716 void SetToolDropDown(int tool_id
, bool dropdown
);
719 Returns whether the specified toolbar item has an associated drop down
722 @see wxAuiToolBarItem::HasDropDown()
724 bool GetToolDropDown(int tool_id
) const;
726 void SetToolBorderPadding(int padding
);
727 int GetToolBorderPadding() const;
729 void SetToolTextOrientation(int orientation
);
730 int GetToolTextOrientation() const;
732 void SetToolPacking(int packing
);
733 int GetToolPacking() const;
735 void SetToolProportion(int tool_id
, int proportion
);
736 int GetToolProportion(int tool_id
) const;
738 void SetToolSeparation(int separation
);
739 int GetToolSeparation() const;
741 void SetToolSticky(int tool_id
, bool sticky
);
742 bool GetToolSticky(int tool_id
) const;
744 wxString
GetToolLabel(int tool_id
) const;
745 void SetToolLabel(int tool_id
, const wxString
& label
);
747 wxBitmap
GetToolBitmap(int tool_id
) const;
748 void SetToolBitmap(int tool_id
, const wxBitmap
& bitmap
);
750 wxString
GetToolShortHelp(int tool_id
) const;
751 void SetToolShortHelp(int tool_id
, const wxString
& help_string
);
753 wxString
GetToolLongHelp(int tool_id
) const;
754 void SetToolLongHelp(int tool_id
, const wxString
& help_string
);
756 void SetCustomOverflowItems(const wxAuiToolBarItemArray
& prepend
,
757 const wxAuiToolBarItemArray
& append
);
759 /** get size of hint rectangle for a particular dock location */
760 wxSize
GetHintSize(int dock_direction
) const;
761 bool IsPaneValid(const wxAuiPaneInfo
& pane
) const;