X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0eefa6597938743c8fa12bdbfc88c7e41c5a2e6b..f6363458bcaa117298305fc220069092c7a42b48:/src/aui/auibar.cpp diff --git a/src/aui/auibar.cpp b/src/aui/auibar.cpp index d398e2b795..c5c6d64d82 100644 --- a/src/aui/auibar.cpp +++ b/src/aui/auibar.cpp @@ -555,6 +555,12 @@ wxSize wxAuiDefaultToolBarArt::GetLabelSize( // 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); } @@ -728,9 +734,9 @@ void wxAuiDefaultToolBarArt::SetElementSize(int element_id, int size) { 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; } } @@ -833,7 +839,7 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent, m_gripper_sizer_item = NULL; m_overflow_sizer_item = NULL; m_dragging = false; - m_style = style; + m_style = style | wxBORDER_NONE; m_gripper_visible = (m_style & wxAUI_TB_GRIPPER) ? true : false; m_overflow_visible = (m_style & wxAUI_TB_OVERFLOW) ? true : false; m_overflow_state = 0; @@ -950,9 +956,9 @@ wxAuiToolBarItem* wxAuiToolBar::AddTool(int tool_id, 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()) { @@ -1018,9 +1024,9 @@ wxAuiToolBarItem* wxAuiToolBar::AddLabel(int tool_id, 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(); } @@ -1469,7 +1475,7 @@ void wxAuiToolBar::RefreshOverflowState() // 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; @@ -1496,7 +1502,7 @@ void wxAuiToolBar::ToggleTool(int tool_id, bool state) int i, idx, count; idx = GetToolIndex(tool_id); count = (int)m_items.GetCount(); - + if (idx >= 0 && idx < count) { for (i = idx; i < count; ++i) @@ -1512,7 +1518,7 @@ void wxAuiToolBar::ToggleTool(int tool_id, bool state) m_items[i].state &= ~wxAUI_BUTTON_STATE_CHECKED; } } - + tool->state |= wxAUI_BUTTON_STATE_CHECKED; } else if (tool->kind == wxITEM_CHECK) @@ -2440,13 +2446,14 @@ void wxAuiToolBar::OnLeftUp(wxMouseEvent& evt) 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(); }