added support for drop down toolbar buttons (patch 1713470)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1862,6 +1862,7 @@ enum wxItemKind
|
||||
wxITEM_NORMAL,
|
||||
wxITEM_CHECK,
|
||||
wxITEM_RADIO,
|
||||
wxITEM_DROPDOWN,
|
||||
wxITEM_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -155,6 +155,9 @@ BEGIN_DECLARE_EVENT_TYPES()
|
||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TOOL_ENTER, 17)
|
||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_SPINCTRL_UPDATED, 18)
|
||||
|
||||
// Toolbar dropdown arrows
|
||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED, 19)
|
||||
|
||||
// Sockets and timers send events, too
|
||||
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BASE, wxEVT_SOCKET, 50)
|
||||
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_BASE, wxEVT_TIMER , 80)
|
||||
@@ -2988,6 +2991,7 @@ typedef void (wxEvtHandler::*wxClipboardTextEventFunction)(wxClipboardTextEvent&
|
||||
#define EVT_VLBOX(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_VLBOX_SELECTED, winid, wxCommandEventHandler(func))
|
||||
#define EVT_COMBOBOX(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_COMBOBOX_SELECTED, winid, wxCommandEventHandler(func))
|
||||
#define EVT_TOOL(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_TOOL_CLICKED, winid, wxCommandEventHandler(func))
|
||||
#define EVT_TOOL_DROPDOWN(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED, winid, wxCommandEventHandler(func))
|
||||
#define EVT_TOOL_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_COMMAND_TOOL_CLICKED, id1, id2, wxCommandEventHandler(func))
|
||||
#define EVT_TOOL_RCLICKED(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_TOOL_RCLICKED, winid, wxCommandEventHandler(func))
|
||||
#define EVT_TOOL_RCLICKED_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_COMMAND_TOOL_RCLICKED, id1, id2, wxCommandEventHandler(func))
|
||||
|
||||
@@ -71,7 +71,8 @@ public:
|
||||
const wxString& longHelpString = wxEmptyString)
|
||||
: m_label(label),
|
||||
m_shortHelpString(shortHelpString),
|
||||
m_longHelpString(longHelpString)
|
||||
m_longHelpString(longHelpString),
|
||||
m_dropdownMenu(NULL)
|
||||
{
|
||||
m_tbar = tbar;
|
||||
m_id = toolid;
|
||||
@@ -106,9 +107,11 @@ public:
|
||||
m_toggled = false;
|
||||
|
||||
m_toolStyle = wxTOOL_STYLE_CONTROL;
|
||||
|
||||
m_dropdownMenu = 0;
|
||||
}
|
||||
|
||||
virtual ~wxToolBarToolBase(){}
|
||||
virtual ~wxToolBarToolBase();
|
||||
|
||||
// accessors
|
||||
// ---------
|
||||
@@ -197,6 +200,11 @@ public:
|
||||
virtual void Detach() { m_tbar = (wxToolBarBase *)NULL; }
|
||||
virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; }
|
||||
|
||||
// these methods are only for tools of wxITEM_DROPDOWN kind (but even such
|
||||
// tools can have a NULL associated menu)
|
||||
void SetDropdownMenu(wxMenu *menu);
|
||||
wxMenu *GetDropdownMenu() const { return m_dropdownMenu; }
|
||||
|
||||
protected:
|
||||
wxToolBarBase *m_tbar; // the toolbar to which we belong (may be NULL)
|
||||
|
||||
@@ -227,6 +235,8 @@ protected:
|
||||
wxString m_shortHelpString;
|
||||
wxString m_longHelpString;
|
||||
|
||||
wxMenu *m_dropdownMenu;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxToolBarToolBase)
|
||||
};
|
||||
|
||||
@@ -525,6 +535,9 @@ public:
|
||||
// don't want toolbars to accept the focus
|
||||
virtual bool AcceptsFocus() const { return false; }
|
||||
|
||||
// Set dropdown menu
|
||||
bool SetDropdownMenu(int toolid, wxMenu *menu);
|
||||
|
||||
protected:
|
||||
// to implement in derived classes
|
||||
// -------------------------------
|
||||
|
||||
Reference in New Issue
Block a user