// get item's width
width = item.GetMinSize().GetWidth();
+ if (width == -1)
+ {
+ // no width specified, measure the text ourselves
+ width = dc.GetTextExtent(item.GetLabel()).GetX();
+ }
+
return wxSize(width, height);
}
{
switch (element_id)
{
- case wxAUI_TBART_SEPARATOR_SIZE: m_separator_size = size;
- case wxAUI_TBART_GRIPPER_SIZE: m_gripper_size = size;
- case wxAUI_TBART_OVERFLOW_SIZE: m_overflow_size = size;
+ case wxAUI_TBART_SEPARATOR_SIZE: m_separator_size = size; break;
+ case wxAUI_TBART_GRIPPER_SIZE: m_gripper_size = size; break;
+ case wxAUI_TBART_OVERFLOW_SIZE: m_overflow_size = size; break;
}
}
SetExtraStyle(wxWS_EX_PROCESS_IDLE);
if (style & wxAUI_TB_HORZ_LAYOUT)
SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT);
+ SetBackgroundStyle(wxBG_STYLE_CUSTOM);
}
item.min_size = wxDefaultSize;
item.user_data = 0;
item.sticky = false;
-
- if (item.id == wxID_ANY)
- item.id = wxNewId();
+
+ if (item.id == wxID_ANY)
+ item.id = wxNewId();
if (!item.disabled_bitmap.IsOk())
{
item.user_data = 0;
item.sticky = false;
- if (item.id == wxID_ANY)
- item.id = wxNewId();
-
+ if (item.id == wxID_ANY)
+ item.id = wxNewId();
+
m_items.Add(item);
return &m_items.Last();
}
// find out if the mouse cursor is inside the dropdown rectangle
if (overflow_rect.Contains(pt.x, pt.y))
{
- if (::wxGetMouseState().LeftDown())
+ if (::wxGetMouseState().LeftIsDown())
overflow_state = wxAUI_BUTTON_STATE_PRESSED;
else
overflow_state = wxAUI_BUTTON_STATE_HOVER;
int i, idx, count;
idx = GetToolIndex(tool_id);
count = (int)m_items.GetCount();
-
+
if (idx >= 0 && idx < count)
{
for (i = idx; i < count; ++i)
m_items[i].state &= ~wxAUI_BUTTON_STATE_CHECKED;
}
}
-
+
tool->state |= wxAUI_BUTTON_STATE_CHECKED;
}
else if (tool->kind == wxITEM_CHECK)
void wxAuiToolBar::OnPaint(wxPaintEvent& WXUNUSED(evt))
{
- wxBufferedPaintDC dc(this);
+ wxAutoBufferedPaintDC dc(this);
wxRect cli_rect(wxPoint(0,0), GetClientSize());
toggle = true;
ToggleTool(m_action_item->id, toggle);
-
+
// repaint immediately
Refresh(false);
Update();
-
+
wxCommandEvent e(wxEVT_COMMAND_MENU_SELECTED, m_action_item->id);
e.SetEventObject(this);
+ e.SetInt (toggle);
GetEventHandler()->ProcessEvent(e);
DoIdleUpdate();
}