1 /////////////////////////////////////////////////////////////////////////////// 2 // Name: wx/aui/toolbar.h 3 // Purpose: wxaui: wx advanced user interface - docking window manager 4 // Author: Benjamin I. Williams 5 // Modified by: 6 // Created: 2008-08-04 7 // RCS-ID: $Id: auibar.h 59850 2009-03-25 13:41:38Z BIW $ 8 // Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. 9 // Licence: wxWindows Library Licence, Version 3.1 10 /////////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_AUIBAR_H_ 13 #define _WX_AUIBAR_H_ 14 15 #include "wx/defs.h" 16 17 #if wxUSE_AUI 18 19 #if wxABI_VERSION >= 20809 20 21 #include "wx/control.h" 22 23 enum wxAuiToolBarStyle 24 { 25 wxAUI_TB_TEXT = 1 << 0, 26 wxAUI_TB_NO_TOOLTIPS = 1 << 1, 27 wxAUI_TB_NO_AUTORESIZE = 1 << 2, 28 wxAUI_TB_GRIPPER = 1 << 3, 29 wxAUI_TB_OVERFLOW = 1 << 4, 30 wxAUI_TB_VERTICAL = 1 << 5, 31 wxAUI_TB_HORZ_LAYOUT = 1 << 6, 32 wxAUI_TB_HORZ_TEXT = (wxAUI_TB_HORZ_LAYOUT | wxAUI_TB_TEXT), 33 wxAUI_TB_DEFAULT_STYLE = 0 34 }; 35 36 enum wxAuiToolBarArtSetting 37 { 38 wxAUI_TBART_SEPARATOR_SIZE = 0, 39 wxAUI_TBART_GRIPPER_SIZE = 1, 40 wxAUI_TBART_OVERFLOW_SIZE = 2 41 }; 42 43 enum wxAuiToolBarToolTextOrientation 44 { 45 wxAUI_TBTOOL_TEXT_LEFT = 0, // unused/unimplemented 46 wxAUI_TBTOOL_TEXT_RIGHT = 1, 47 wxAUI_TBTOOL_TEXT_TOP = 2, // unused/unimplemented 48 wxAUI_TBTOOL_TEXT_BOTTOM = 3 49 }; 50 51 52 // aui toolbar event class 53 54 class WXDLLIMPEXP_AUI wxAuiToolBarEvent : public wxNotifyEvent 55 { 56 public: 57 wxAuiToolBarEvent(wxEventType command_type = wxEVT_NULL, 58 int win_id = 0) wxNotifyEvent(command_type,win_id)59 : wxNotifyEvent(command_type, win_id) 60 { 61 is_dropdown_clicked = false; 62 click_pt = wxPoint(-1, -1); 63 rect = wxRect(-1,-1, 0, 0); 64 tool_id = -1; 65 } 66 #ifndef SWIG wxAuiToolBarEvent(const wxAuiToolBarEvent & c)67 wxAuiToolBarEvent(const wxAuiToolBarEvent& c) : wxNotifyEvent(c) 68 { 69 is_dropdown_clicked = c.is_dropdown_clicked; 70 click_pt = c.click_pt; 71 rect = c.rect; 72 tool_id = c.tool_id; 73 } 74 #endif Clone()75 wxEvent *Clone() const { return new wxAuiToolBarEvent(*this); } 76 IsDropDownClicked()77 bool IsDropDownClicked() const { return is_dropdown_clicked; } SetDropDownClicked(bool c)78 void SetDropDownClicked(bool c) { is_dropdown_clicked = c; } 79 GetClickPoint()80 wxPoint GetClickPoint() const { return click_pt; } SetClickPoint(const wxPoint & p)81 void SetClickPoint(const wxPoint& p) { click_pt = p; } 82 GetItemRect()83 wxRect GetItemRect() const { return rect; } SetItemRect(const wxRect & r)84 void SetItemRect(const wxRect& r) { rect = r; } 85 GetToolId()86 int GetToolId() const { return tool_id; } SetToolId(int id)87 void SetToolId(int id) { tool_id = id; } 88 89 private: 90 91 bool is_dropdown_clicked; 92 wxPoint click_pt; 93 wxRect rect; 94 int tool_id; 95 96 #ifndef SWIG 97 private: 98 DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxAuiToolBarEvent) 99 #endif 100 }; 101 102 103 class WXDLLIMPEXP_AUI wxAuiToolBarItem 104 { 105 friend class wxAuiToolBar; 106 107 public: 108 wxAuiToolBarItem()109 wxAuiToolBarItem() 110 { 111 window = NULL; 112 sizer_item = NULL; 113 spacer_pixels = 0; 114 id = 0; 115 kind = wxITEM_NORMAL; 116 state = 0; // normal, enabled 117 proportion = 0; 118 active = true; 119 dropdown = true; 120 sticky = true; 121 user_data = 0; 122 } 123 wxAuiToolBarItem(const wxAuiToolBarItem & c)124 wxAuiToolBarItem(const wxAuiToolBarItem& c) 125 { 126 Assign(c); 127 } 128 129 wxAuiToolBarItem& operator=(const wxAuiToolBarItem& c) 130 { 131 Assign(c); 132 return *this; 133 } 134 Assign(const wxAuiToolBarItem & c)135 void Assign(const wxAuiToolBarItem& c) 136 { 137 window = c.window; 138 label = c.label; 139 bitmap = c.bitmap; 140 disabled_bitmap = c.disabled_bitmap; 141 hover_bitmap = c.hover_bitmap; 142 short_help = c.short_help; 143 long_help = c.long_help; 144 sizer_item = c.sizer_item; 145 min_size = c.min_size; 146 spacer_pixels = c.spacer_pixels; 147 id = c.id; 148 kind = c.kind; 149 state = c.state; 150 proportion = c.proportion; 151 active = c.active; 152 dropdown = c.dropdown; 153 sticky = c.sticky; 154 user_data = c.user_data; 155 } 156 157 SetWindow(wxWindow * w)158 void SetWindow(wxWindow* w) { window = w; } GetWindow()159 wxWindow* GetWindow() { return window; } 160 SetId(int new_id)161 void SetId(int new_id) { id = new_id; } GetId()162 int GetId() const { return id; } 163 SetKind(int new_kind)164 void SetKind(int new_kind) { kind = new_kind; } GetKind()165 int GetKind() const { return kind; } 166 SetState(int new_state)167 void SetState(int new_state) { state = new_state; } GetState()168 int GetState() const { return state; } 169 SetSizerItem(wxSizerItem * s)170 void SetSizerItem(wxSizerItem* s) { sizer_item = s; } GetSizerItem()171 wxSizerItem* GetSizerItem() const { return sizer_item; } 172 SetLabel(const wxString & s)173 void SetLabel(const wxString& s) { label = s; } GetLabel()174 const wxString& GetLabel() const { return label; } 175 SetBitmap(const wxBitmap & bmp)176 void SetBitmap(const wxBitmap& bmp) { bitmap = bmp; } GetBitmap()177 const wxBitmap& GetBitmap() const { return bitmap; } 178 SetDisabledBitmap(const wxBitmap & bmp)179 void SetDisabledBitmap(const wxBitmap& bmp) { disabled_bitmap = bmp; } GetDisabledBitmap()180 const wxBitmap& GetDisabledBitmap() const { return disabled_bitmap; } 181 SetHoverBitmap(const wxBitmap & bmp)182 void SetHoverBitmap(const wxBitmap& bmp) { hover_bitmap = bmp; } GetHoverBitmap()183 const wxBitmap& GetHoverBitmap() const { return hover_bitmap; } 184 SetShortHelp(const wxString & s)185 void SetShortHelp(const wxString& s) { short_help = s; } GetShortHelp()186 const wxString& GetShortHelp() const { return short_help; } 187 SetLongHelp(const wxString & s)188 void SetLongHelp(const wxString& s) { long_help = s; } GetLongHelp()189 const wxString& GetLongHelp() const { return long_help; } 190 SetMinSize(const wxSize & s)191 void SetMinSize(const wxSize& s) { min_size = s; } GetMinSize()192 const wxSize& GetMinSize() const { return min_size; } 193 SetSpacerPixels(int s)194 void SetSpacerPixels(int s) { spacer_pixels = s; } GetSpacerPixels()195 int GetSpacerPixels() const { return spacer_pixels; } 196 SetProportion(int p)197 void SetProportion(int p) { proportion = p; } GetProportion()198 int GetProportion() const { return proportion; } 199 SetActive(bool b)200 void SetActive(bool b) { active = b; } IsActive()201 bool IsActive() const { return active; } 202 SetHasDropDown(bool b)203 void SetHasDropDown(bool b) { dropdown = b; } HasDropDown()204 bool HasDropDown() const { return dropdown; } 205 SetSticky(bool b)206 void SetSticky(bool b) { sticky = b; } IsSticky()207 bool IsSticky() const { return sticky; } 208 SetUserData(long l)209 void SetUserData(long l) { user_data = l; } GetUserData()210 long GetUserData() const { return user_data; } 211 212 private: 213 214 wxWindow* window; // item's associated window 215 wxString label; // label displayed on the item 216 wxBitmap bitmap; // item's bitmap 217 wxBitmap disabled_bitmap; // item's disabled bitmap 218 wxBitmap hover_bitmap; // item's hover bitmap 219 wxString short_help; // short help (for tooltip) 220 wxString long_help; // long help (for status bar) 221 wxSizerItem* sizer_item; // sizer item 222 wxSize min_size; // item's minimum size 223 int spacer_pixels; // size of a spacer 224 int id; // item's id 225 int kind; // item's kind 226 int state; // state 227 int proportion; // proportion 228 bool active; // true if the item is currently active 229 bool dropdown; // true if the item has a dropdown button 230 bool sticky; // overrides button states if true (always active) 231 long user_data; // user-specified data 232 }; 233 234 #ifndef SWIG 235 WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiToolBarItem, wxAuiToolBarItemArray, WXDLLIMPEXP_AUI); 236 #endif 237 238 239 240 241 // tab art class 242 243 class WXDLLIMPEXP_AUI wxAuiToolBarArt 244 { 245 public: 246 wxAuiToolBarArt()247 wxAuiToolBarArt() { } ~wxAuiToolBarArt()248 virtual ~wxAuiToolBarArt() { } 249 250 virtual wxAuiToolBarArt* Clone() = 0; 251 virtual void SetFlags(unsigned int flags) = 0; 252 virtual void SetFont(const wxFont& font) = 0; 253 virtual void SetTextOrientation(int orientation) = 0; 254 255 virtual void DrawBackground( 256 wxDC& dc, 257 wxWindow* wnd, 258 const wxRect& rect) = 0; 259 260 virtual void DrawLabel( 261 wxDC& dc, 262 wxWindow* wnd, 263 const wxAuiToolBarItem& item, 264 const wxRect& rect) = 0; 265 266 virtual void DrawButton( 267 wxDC& dc, 268 wxWindow* wnd, 269 const wxAuiToolBarItem& item, 270 const wxRect& rect) = 0; 271 272 virtual void DrawDropDownButton( 273 wxDC& dc, 274 wxWindow* wnd, 275 const wxAuiToolBarItem& item, 276 const wxRect& rect) = 0; 277 278 virtual void DrawControlLabel( 279 wxDC& dc, 280 wxWindow* wnd, 281 const wxAuiToolBarItem& item, 282 const wxRect& rect) = 0; 283 284 virtual void DrawSeparator( 285 wxDC& dc, 286 wxWindow* wnd, 287 const wxRect& rect) = 0; 288 289 virtual void DrawGripper( 290 wxDC& dc, 291 wxWindow* wnd, 292 const wxRect& rect) = 0; 293 294 virtual void DrawOverflowButton( 295 wxDC& dc, 296 wxWindow* wnd, 297 const wxRect& rect, 298 int state) = 0; 299 300 virtual wxSize GetLabelSize( 301 wxDC& dc, 302 wxWindow* wnd, 303 const wxAuiToolBarItem& item) = 0; 304 305 virtual wxSize GetToolSize( 306 wxDC& dc, 307 wxWindow* wnd, 308 const wxAuiToolBarItem& item) = 0; 309 310 virtual int GetElementSize(int element_id) = 0; 311 virtual void SetElementSize(int element_id, int size) = 0; 312 313 virtual int ShowDropDown( 314 wxWindow* wnd, 315 const wxAuiToolBarItemArray& items) = 0; 316 }; 317 318 319 320 class WXDLLIMPEXP_AUI wxAuiDefaultToolBarArt : public wxAuiToolBarArt 321 { 322 323 public: 324 325 wxAuiDefaultToolBarArt(); 326 virtual ~wxAuiDefaultToolBarArt(); 327 328 virtual wxAuiToolBarArt* Clone(); 329 virtual void SetFlags(unsigned int flags); 330 virtual void SetFont(const wxFont& font); 331 virtual void SetTextOrientation(int orientation); 332 333 virtual void DrawBackground( 334 wxDC& dc, 335 wxWindow* wnd, 336 const wxRect& rect); 337 338 virtual void DrawLabel( 339 wxDC& dc, 340 wxWindow* wnd, 341 const wxAuiToolBarItem& item, 342 const wxRect& rect); 343 344 virtual void DrawButton( 345 wxDC& dc, 346 wxWindow* wnd, 347 const wxAuiToolBarItem& item, 348 const wxRect& rect); 349 350 virtual void DrawDropDownButton( 351 wxDC& dc, 352 wxWindow* wnd, 353 const wxAuiToolBarItem& item, 354 const wxRect& rect); 355 356 virtual void DrawControlLabel( 357 wxDC& dc, 358 wxWindow* wnd, 359 const wxAuiToolBarItem& item, 360 const wxRect& rect); 361 362 virtual void DrawSeparator( 363 wxDC& dc, 364 wxWindow* wnd, 365 const wxRect& rect); 366 367 virtual void DrawGripper( 368 wxDC& dc, 369 wxWindow* wnd, 370 const wxRect& rect); 371 372 virtual void DrawOverflowButton( 373 wxDC& dc, 374 wxWindow* wnd, 375 const wxRect& rect, 376 int state); 377 378 virtual wxSize GetLabelSize( 379 wxDC& dc, 380 wxWindow* wnd, 381 const wxAuiToolBarItem& item); 382 383 virtual wxSize GetToolSize( 384 wxDC& dc, 385 wxWindow* wnd, 386 const wxAuiToolBarItem& item); 387 388 virtual int GetElementSize(int element); 389 virtual void SetElementSize(int element_id, int size); 390 391 virtual int ShowDropDown(wxWindow* wnd, 392 const wxAuiToolBarItemArray& items); 393 394 protected: 395 396 wxBitmap m_button_dropdown_bmp; 397 wxBitmap m_disabled_button_dropdown_bmp; 398 wxBitmap m_overflow_bmp; 399 wxBitmap m_disabled_overflow_bmp; 400 wxColour m_base_colour; 401 wxColour m_highlight_colour; 402 wxFont m_font; 403 unsigned int m_flags; 404 int m_text_orientation; 405 406 wxPen m_gripper_pen1; 407 wxPen m_gripper_pen2; 408 wxPen m_gripper_pen3; 409 410 int m_separator_size; 411 int m_gripper_size; 412 int m_overflow_size; 413 }; 414 415 416 417 418 class WXDLLIMPEXP_AUI wxAuiToolBar : public wxControl 419 { 420 public: 421 422 wxAuiToolBar(wxWindow* parent, 423 wxWindowID id = -1, 424 const wxPoint& position = wxDefaultPosition, 425 const wxSize& size = wxDefaultSize, 426 long style = wxAUI_TB_DEFAULT_STYLE); 427 ~wxAuiToolBar(); 428 429 void SetWindowStyleFlag(long style); 430 long GetWindowStyleFlag() const; 431 432 void SetArtProvider(wxAuiToolBarArt* art); 433 wxAuiToolBarArt* GetArtProvider() const; 434 435 bool SetFont(const wxFont& font); 436 437 438 void AddTool(int tool_id, 439 const wxString& label, 440 const wxBitmap& bitmap, 441 const wxString& short_help_string = wxEmptyString, 442 wxItemKind kind = wxITEM_NORMAL); 443 444 void AddTool(int tool_id, 445 const wxString& label, 446 const wxBitmap& bitmap, 447 const wxBitmap& disabled_bitmap, 448 wxItemKind kind, 449 const wxString& short_help_string, 450 const wxString& long_help_string, 451 wxObject* client_data); 452 453 void AddTool(int tool_id, 454 const wxBitmap& bitmap, 455 const wxBitmap& disabled_bitmap, 456 bool toggle = false, 457 wxObject* client_data = NULL, 458 const wxString& short_help_string = wxEmptyString, 459 const wxString& long_help_string = wxEmptyString) 460 { 461 AddTool(tool_id, 462 wxEmptyString, 463 bitmap, 464 disabled_bitmap, 465 toggle ? wxITEM_CHECK : wxITEM_NORMAL, 466 short_help_string, 467 long_help_string, 468 client_data); 469 } 470 471 void AddLabel(int tool_id, 472 const wxString& label = wxEmptyString, 473 const int width = -1); 474 void AddControl(wxControl* control, 475 const wxString& label = wxEmptyString); 476 void AddSeparator(); 477 void AddSpacer(int pixels); 478 void AddStretchSpacer(int proportion = 1); 479 480 bool Realize(); 481 482 wxControl* FindControl(int window_id); 483 wxAuiToolBarItem* FindToolByPosition(wxCoord x, wxCoord y) const; 484 wxAuiToolBarItem* FindToolByIndex(int idx) const; 485 wxAuiToolBarItem* FindTool(int tool_id) const; 486 ClearTools()487 void ClearTools() { Clear() ; } 488 void Clear(); 489 bool DeleteTool(int tool_id); 490 bool DeleteByIndex(int tool_id); 491 492 size_t GetToolCount() const; GetToolPos(int tool_id)493 int GetToolPos(int tool_id) const { return GetToolIndex(tool_id); } 494 int GetToolIndex(int tool_id) const; 495 bool GetToolFits(int tool_id) const; 496 wxRect GetToolRect(int tool_id) const; 497 bool GetToolFitsByIndex(int tool_id) const; 498 bool GetToolBarFits() const; 499 SetMargins(const wxSize & size)500 void SetMargins(const wxSize& size) { SetMargins(size.x, size.x, size.y, size.y); } SetMargins(int x,int y)501 void SetMargins(int x, int y) { SetMargins(x, x, y, y); } 502 void SetMargins(int left, int right, int top, int bottom); 503 504 void SetToolBitmapSize(const wxSize& size); 505 wxSize GetToolBitmapSize() const; 506 507 bool GetOverflowVisible() const; 508 void SetOverflowVisible(bool visible); 509 510 bool GetGripperVisible() const; 511 void SetGripperVisible(bool visible); 512 513 void ToggleTool(int tool_id, bool state); 514 bool GetToolToggled(int tool_id) const; 515 516 void EnableTool(int tool_id, bool state); 517 bool GetToolEnabled(int tool_id) const; 518 519 void SetToolDropDown(int tool_id, bool dropdown); 520 bool GetToolDropDown(int tool_id) const; 521 522 void SetToolBorderPadding(int padding); 523 int GetToolBorderPadding() const; 524 525 void SetToolTextOrientation(int orientation); 526 int GetToolTextOrientation() const; 527 528 void SetToolPacking(int packing); 529 int GetToolPacking() const; 530 531 void SetToolProportion(int tool_id, int proportion); 532 int GetToolProportion(int tool_id) const; 533 534 void SetToolSeparation(int separation); 535 int GetToolSeparation() const; 536 537 void SetToolSticky(int tool_id, bool sticky); 538 bool GetToolSticky(int tool_id) const; 539 540 wxString GetToolLabel(int tool_id) const; 541 void SetToolLabel(int tool_id, const wxString& label); 542 543 wxBitmap GetToolBitmap(int tool_id) const; 544 void SetToolBitmap(int tool_id, const wxBitmap& bitmap); 545 546 wxString GetToolShortHelp(int tool_id) const; 547 void SetToolShortHelp(int tool_id, const wxString& help_string); 548 549 wxString GetToolLongHelp(int tool_id) const; 550 void SetToolLongHelp(int tool_id, const wxString& help_string); 551 552 void SetCustomOverflowItems(const wxAuiToolBarItemArray& prepend, 553 const wxAuiToolBarItemArray& append); 554 555 protected: 556 OnCustomRender(wxDC & WXUNUSED (dc),const wxAuiToolBarItem & WXUNUSED (item),const wxRect & WXUNUSED (rect))557 virtual void OnCustomRender(wxDC& WXUNUSED(dc), 558 const wxAuiToolBarItem& WXUNUSED(item), 559 const wxRect& WXUNUSED(rect)) { } 560 561 protected: 562 563 void DoIdleUpdate(); 564 void SetOrientation(int orientation); 565 void SetHoverItem(wxAuiToolBarItem* item); 566 void SetPressedItem(wxAuiToolBarItem* item); 567 void RefreshOverflowState(); 568 569 int GetOverflowState() const; 570 wxRect GetOverflowRect() const; 571 wxSize GetLabelSize(const wxString& label); 572 wxAuiToolBarItem* FindToolByPositionWithPacking(wxCoord x, wxCoord y) const; 573 574 void DoSetSize(int x, 575 int y, 576 int width, 577 int height, 578 int sizeFlags = wxSIZE_AUTO); 579 580 protected: // handlers 581 582 void OnSize(wxSizeEvent& evt); 583 void OnIdle(wxIdleEvent& evt); 584 void OnPaint(wxPaintEvent& evt); 585 void OnEraseBackground(wxEraseEvent& evt); 586 void OnLeftDown(wxMouseEvent& evt); 587 void OnLeftUp(wxMouseEvent& evt); 588 void OnRightDown(wxMouseEvent& evt); 589 void OnRightUp(wxMouseEvent& evt); 590 void OnMiddleDown(wxMouseEvent& evt); 591 void OnMiddleUp(wxMouseEvent& evt); 592 void OnMotion(wxMouseEvent& evt); 593 void OnLeaveWindow(wxMouseEvent& evt); 594 void OnSetCursor(wxSetCursorEvent& evt); 595 596 protected: 597 598 wxAuiToolBarItemArray m_items; // array of toolbar items 599 wxAuiToolBarArt* m_art; // art provider 600 wxBoxSizer* m_sizer; // main sizer for toolbar 601 wxAuiToolBarItem* m_action_item; // item that's being acted upon (pressed) 602 wxAuiToolBarItem* m_tip_item; // item that has its tooltip shown 603 wxBitmap m_bitmap; // double-buffer bitmap 604 wxSizerItem* m_gripper_sizer_item; 605 wxSizerItem* m_overflow_sizer_item; 606 wxSize m_absolute_min_size; 607 wxPoint m_action_pos; // position of left-mouse down 608 wxAuiToolBarItemArray m_custom_overflow_prepend; 609 wxAuiToolBarItemArray m_custom_overflow_append; 610 611 int m_button_width; 612 int m_button_height; 613 int m_sizer_element_count; 614 int m_left_padding; 615 int m_right_padding; 616 int m_top_padding; 617 int m_bottom_padding; 618 int m_tool_packing; 619 int m_tool_border_padding; 620 int m_tool_text_orientation; 621 int m_overflow_state; 622 bool m_dragging; 623 bool m_gripper_visible; 624 bool m_overflow_visible; 625 long m_style; 626 627 DECLARE_EVENT_TABLE() 628 DECLARE_CLASS(wxAuiToolBar) 629 }; 630 631 632 633 634 // wx event machinery 635 636 #ifndef SWIG 637 638 BEGIN_DECLARE_EVENT_TYPES() 639 DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, 0) 640 DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK, 0) 641 DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK, 0) 642 DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK, 0) 643 DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_AUI, wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG, 0) 644 END_DECLARE_EVENT_TYPES() 645 646 typedef void (wxEvtHandler::*wxAuiToolBarEventFunction)(wxAuiToolBarEvent&); 647 648 #define wxAuiToolBarEventHandler(func) \ 649 (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxAuiToolBarEventFunction, &func) 650 651 #define EVT_AUITOOLBAR_TOOL_DROPDOWN(winid, fn) \ 652 wx__DECLARE_EVT1(wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, winid, wxAuiToolBarEventHandler(fn)) 653 #define EVT_AUITOOLBAR_OVERFLOW_CLICK(winid, fn) \ 654 wx__DECLARE_EVT1(wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK, winid, wxAuiToolBarEventHandler(fn)) 655 #define EVT_AUITOOLBAR_RIGHT_CLICK(winid, fn) \ 656 wx__DECLARE_EVT1(wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK, winid, wxAuiToolBarEventHandler(fn)) 657 #define EVT_AUITOOLBAR_MIDDLE_CLICK(winid, fn) \ 658 wx__DECLARE_EVT1(wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK, winid, wxAuiToolBarEventHandler(fn)) 659 #define EVT_AUITOOLBAR_BEGIN_DRAG(winid, fn) \ 660 wx__DECLARE_EVT1(wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG, winid, wxAuiToolBarEventHandler(fn)) 661 662 #else 663 664 // wxpython/swig event work 665 %constant wxEventType wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN; 666 %constant wxEventType wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK; 667 %constant wxEventType wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK; 668 %constant wxEventType wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK; 669 %constant wxEventType wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG; 670 671 %pythoncode { 672 EVT_AUITOOLBAR_TOOL_DROPDOWN = wx.PyEventBinder( wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, 1 ) 673 EVT_AUITOOLBAR_OVERFLOW_CLICK = wx.PyEventBinder( wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK, 1 ) 674 EVT_AUITOOLBAR_RIGHT_CLICK = wx.PyEventBinder( wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK, 1 ) 675 EVT_AUITOOLBAR_MIDDLE_CLICK = wx.PyEventBinder( wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK, 1 ) 676 EVT_AUITOOLBAR_BEGIN_DRAG = wx.PyEventBinder( wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG, 1 ) 677 } 678 #endif // SWIG 679 680 #endif // wxABI_VERSION >= 20809 681 682 #endif // wxUSE_AUI 683 684 #endif // _WX_AUIBAR_H_ 685 686