WX_DEFINE_OBJARRAY(wxAuiToolBarItemArray)
-wxDEFINE_EVENT( wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK, wxAuiToolBarEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK, wxAuiToolBarEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK, wxAuiToolBarEvent );
-wxDEFINE_EVENT( wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG, wxAuiToolBarEvent );
+wxDEFINE_EVENT( wxEVT_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEvent );
+wxDEFINE_EVENT( wxEVT_AUITOOLBAR_OVERFLOW_CLICK, wxAuiToolBarEvent );
+wxDEFINE_EVENT( wxEVT_AUITOOLBAR_RIGHT_CLICK, wxAuiToolBarEvent );
+wxDEFINE_EVENT( wxEVT_AUITOOLBAR_MIDDLE_CLICK, wxAuiToolBarEvent );
+wxDEFINE_EVENT( wxEVT_AUITOOLBAR_BEGIN_DRAG, wxAuiToolBarEvent );
IMPLEMENT_CLASS(wxAuiToolBar, wxControl)
bool ProcessEvent(wxEvent& evt)
{
- if (evt.GetEventType() == wxEVT_COMMAND_MENU_SELECTED)
+ if (evt.GetEventType() == wxEVT_MENU)
{
m_lastId = evt.GetId();
return true;
dc.GradientFillLinear(rect, startColour, endColour, wxSOUTH);
}
+void wxAuiDefaultToolBarArt::DrawPlainBackground(wxDC& dc,
+ wxWindow* WXUNUSED(wnd),
+ const wxRect& _rect)
+{
+ wxRect rect = _rect;
+ rect.height++;
+
+ dc.SetBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
+
+ dc.DrawRectangle(rect.GetX() - 1, rect.GetY() - 1,
+ rect.GetWidth() + 2, rect.GetHeight() + 1);
+}
+
void wxAuiDefaultToolBarArt::DrawLabel(
wxDC& dc,
wxWindow* WXUNUSED(wnd),
}
else if (item.GetState() & wxAUI_BUTTON_STATE_CHECKED)
{
- // it's important to put this code in an else statment after the
+ // it's important to put this code in an else statement after the
// hover, otherwise hovers won't draw properly for checked items
dc.SetPen(wxPen(m_highlightColour));
dc.SetBrush(wxBrush(m_highlightColour.ChangeLightness(170)));
m_buttonWidth = -1;
m_buttonHeight = -1;
m_sizerElementCount = 0;
- m_actionPos = wxPoint(-1,-1);
+ m_actionPos = wxDefaultPosition;
m_actionItem = NULL;
m_tipItem = NULL;
m_art = new wxAuiDefaultToolBarArt;
m_gripperSizerItem = NULL;
m_overflowSizerItem = NULL;
m_dragging = false;
- m_gripperVisible = (m_windowStyle & wxAUI_TB_GRIPPER) ? true : false;
- m_overflowVisible = (m_windowStyle & wxAUI_TB_OVERFLOW) ? true : false;
+ m_gripperVisible = false;
+ m_overflowVisible = false;
m_overflowState = 0;
+ m_orientation = wxHORIZONTAL;
}
bool wxAuiToolBar::Create(wxWindow* parent,
return false;
m_windowStyle = style;
+
+ m_gripperVisible = (style & wxAUI_TB_GRIPPER) ? true : false;
+ m_overflowVisible = (style & wxAUI_TB_OVERFLOW) ? true : false;
+
m_orientation = GetOrientation(style);
if (m_orientation == wxBOTH)
{
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)
bool horizontal = m_orientation == wxHORIZONTAL;
-
- m_art->DrawBackground(dc, this, cli_rect);
+ if (m_windowStyle & wxAUI_TB_PLAIN_BACKGROUND)
+ m_art->DrawPlainBackground(dc, this, cli_rect);
+ else
+ m_art->DrawBackground(dc, this, cli_rect);
int gripperSize = m_art->GetElementSize(wxAUI_TBART_GRIPPER_SIZE);
int dropdown_size = m_art->GetElementSize(wxAUI_TBART_OVERFLOW_SIZE);
break;
}
- if (item.m_kind == wxITEM_SEPARATOR)
- {
- // 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)
- m_art->DrawButton(dc, this, item, item_rect);
- else
- m_art->DrawDropDownButton(dc, this, item, item_rect);
- }
- else if (item.m_kind == wxITEM_CHECK)
+ switch ( item.m_kind )
{
- // draw either a regular or dropdown toggle 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_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
m_overflowVisible &&
overflow_rect.Contains(evt.m_x, evt.m_y))
{
- wxAuiToolBarEvent e(wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK, -1);
+ wxAuiToolBarEvent e(wxEVT_AUITOOLBAR_OVERFLOW_CLICK, -1);
e.SetEventObject(this);
e.SetToolId(-1);
e.SetClickPoint(wxPoint(evt.GetX(), evt.GetY()));
Refresh(false);
if (res != -1)
{
- wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, res);
+ wxCommandEvent event(wxEVT_MENU, res);
event.SetEventObject(this);
GetParent()->GetEventHandler()->ProcessEvent(event);
}
UnsetToolTip();
// fire the tool dropdown event
- wxAuiToolBarEvent e(wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, m_actionItem->m_toolId);
+ wxAuiToolBarEvent e(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, m_actionItem->m_toolId);
e.SetEventObject(this);
e.SetToolId(m_actionItem->m_toolId);
{
UnsetToolTip();
- wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, m_actionItem->m_toolId);
+ wxCommandEvent e(wxEVT_MENU, m_actionItem->m_toolId);
e.SetEventObject(this);
if (hitItem->m_kind == wxITEM_CHECK || hitItem->m_kind == wxITEM_RADIO)
if (m_actionItem && hitItem == m_actionItem)
{
- wxAuiToolBarEvent e(wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK, m_actionItem->m_toolId);
+ wxAuiToolBarEvent e(wxEVT_AUITOOLBAR_RIGHT_CLICK, m_actionItem->m_toolId);
e.SetEventObject(this);
e.SetToolId(m_actionItem->m_toolId);
e.SetClickPoint(m_actionPos);
else
{
// right-clicked on the invalid area of the toolbar
- wxAuiToolBarEvent e(wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK, -1);
+ wxAuiToolBarEvent e(wxEVT_AUITOOLBAR_RIGHT_CLICK, -1);
e.SetEventObject(this);
e.SetToolId(-1);
e.SetClickPoint(m_actionPos);
{
if (hitItem->m_kind == wxITEM_NORMAL)
{
- wxAuiToolBarEvent e(wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK, m_actionItem->m_toolId);
+ wxAuiToolBarEvent e(wxEVT_AUITOOLBAR_MIDDLE_CLICK, m_actionItem->m_toolId);
e.SetEventObject(this);
e.SetToolId(m_actionItem->m_toolId);
e.SetClickPoint(m_actionPos);
{
// TODO: sending this event only makes sense if there is an 'END_DRAG'
// event sent sometime in the future (see OnLeftUp())
- wxAuiToolBarEvent e(wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG, GetId());
+ wxAuiToolBarEvent e(wxEVT_AUITOOLBAR_BEGIN_DRAG, GetId());
e.SetEventObject(this);
e.SetToolId(m_actionItem->m_toolId);
m_dragging = GetEventHandler()->ProcessEvent(e) && !e.GetSkipped();