Disallow drop downs on AUI check buttons.
This doesn't make much sense and disallowing it makes check items consistent with radio ones as previously you could set up a dropdown for the former but not for the latter. Also update the documentation of the relevant methods. Closes #14795. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
75b2220eba
commit
72ae0b5169
@ -211,7 +211,14 @@ public:
|
||||
void SetActive(bool b) { m_active = b; }
|
||||
bool IsActive() const { return m_active; }
|
||||
|
||||
void SetHasDropDown(bool b) { m_dropDown = b; }
|
||||
void SetHasDropDown(bool b)
|
||||
{
|
||||
wxCHECK_RET( !b || m_kind == wxITEM_NORMAL,
|
||||
wxS("Only normal tools can have drop downs") );
|
||||
|
||||
m_dropDown = b;
|
||||
}
|
||||
|
||||
bool HasDropDown() const { return m_dropDown; }
|
||||
|
||||
void SetSticky(bool b) { m_sticky = b; }
|
||||
|
@ -341,11 +341,13 @@ public:
|
||||
bool IsActive() const;
|
||||
|
||||
/**
|
||||
Set whether this tool has a drop down button.
|
||||
|
||||
This is only valid for wxITEM_NORMAL tools.
|
||||
*/
|
||||
void SetHasDropDown(bool b);
|
||||
/**
|
||||
|
||||
Returns whether the toolbar item has an associated drop down button.
|
||||
*/
|
||||
bool HasDropDown() const;
|
||||
|
||||
@ -704,7 +706,21 @@ public:
|
||||
void EnableTool(int tool_id, bool state);
|
||||
bool GetToolEnabled(int tool_id) const;
|
||||
|
||||
/**
|
||||
Set whether the specified toolbar item has a drop down button.
|
||||
|
||||
This is only valid for wxITEM_NORMAL tools.
|
||||
|
||||
@see wxAuiToolBarItem::SetHasDropDown()
|
||||
*/
|
||||
void SetToolDropDown(int tool_id, bool dropdown);
|
||||
|
||||
/**
|
||||
Returns whether the specified toolbar item has an associated drop down
|
||||
button.
|
||||
|
||||
@see wxAuiToolBarItem::HasDropDown()
|
||||
*/
|
||||
bool GetToolDropDown(int tool_id) const;
|
||||
|
||||
void SetToolBorderPadding(int padding);
|
||||
|
@ -1261,16 +1261,16 @@ void wxAuiToolBar::SetToolDropDown(int tool_id, bool dropdown)
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
item->m_dropDown = dropdown;
|
||||
item->SetHasDropDown(dropdown);
|
||||
}
|
||||
|
||||
bool wxAuiToolBar::GetToolDropDown(int tool_id) const
|
||||
{
|
||||
wxAuiToolBarItem* item = FindTool(tool_id);
|
||||
if (!item)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
return item->m_dropDown;
|
||||
return item->HasDropDown();
|
||||
}
|
||||
|
||||
void wxAuiToolBar::SetToolSticky(int tool_id, bool sticky)
|
||||
@ -2411,41 +2411,36 @@ void wxAuiToolBar::OnPaint(wxPaintEvent& WXUNUSED(evt))
|
||||
break;
|
||||
}
|
||||
|
||||
if (item.m_kind == wxITEM_SEPARATOR)
|
||||
switch ( item.m_kind )
|
||||
{
|
||||
// draw a separator
|
||||
m_art->DrawSeparator(dc, this, item_rect);
|
||||
}
|
||||
else if (item.m_kind == wxITEM_LABEL)
|
||||
{
|
||||
// draw a text label only
|
||||
m_art->DrawLabel(dc, this, item, item_rect);
|
||||
}
|
||||
else if (item.m_kind == wxITEM_NORMAL)
|
||||
{
|
||||
// draw a regular button or dropdown button
|
||||
if (!item.m_dropDown)
|
||||
case wxITEM_NORMAL:
|
||||
// draw a regular or dropdown button
|
||||
if (!item.m_dropDown)
|
||||
m_art->DrawButton(dc, this, item, item_rect);
|
||||
else
|
||||
m_art->DrawDropDownButton(dc, this, item, item_rect);
|
||||
break;
|
||||
|
||||
case wxITEM_CHECK:
|
||||
case wxITEM_RADIO:
|
||||
// draw a toggle button
|
||||
m_art->DrawButton(dc, this, item, item_rect);
|
||||
else
|
||||
m_art->DrawDropDownButton(dc, this, item, item_rect);
|
||||
}
|
||||
else if (item.m_kind == wxITEM_CHECK)
|
||||
{
|
||||
// draw either a regular or dropdown toggle button
|
||||
if (!item.m_dropDown)
|
||||
m_art->DrawButton(dc, this, item, item_rect);
|
||||
else
|
||||
m_art->DrawDropDownButton(dc, this, item, item_rect);
|
||||
}
|
||||
else if (item.m_kind == wxITEM_RADIO)
|
||||
{
|
||||
// draw a toggle button
|
||||
m_art->DrawButton(dc, this, item, item_rect);
|
||||
}
|
||||
else if (item.m_kind == wxITEM_CONTROL)
|
||||
{
|
||||
// draw the control's label
|
||||
m_art->DrawControlLabel(dc, this, item, item_rect);
|
||||
break;
|
||||
|
||||
case wxITEM_SEPARATOR:
|
||||
// draw a separator
|
||||
m_art->DrawSeparator(dc, this, item_rect);
|
||||
break;
|
||||
|
||||
case wxITEM_LABEL:
|
||||
// draw a text label only
|
||||
m_art->DrawLabel(dc, this, item, item_rect);
|
||||
break;
|
||||
|
||||
case wxITEM_CONTROL:
|
||||
// draw the control's label
|
||||
m_art->DrawControlLabel(dc, this, item, item_rect);
|
||||
break;
|
||||
}
|
||||
|
||||
// fire a signal to see if the item wants to be custom-rendered
|
||||
|
Loading…
Reference in New Issue
Block a user