X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9e10f5d41610d8865f663e39ddd0da357a25ed7e..bfad4a154618ba95472ccb6ebdd3aa9829c0ecd8:/src/aui/auibar.cpp diff --git a/src/aui/auibar.cpp b/src/aui/auibar.cpp index 5b42d58c27..03789c7a4c 100644 --- a/src/aui/auibar.cpp +++ b/src/aui/auibar.cpp @@ -5,7 +5,7 @@ // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: $Id: dockart.cpp 48848 2007-09-21 10:19:53Z SC $ +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005-2006, Kirix Corporation, All Rights Reserved // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -38,6 +38,8 @@ #ifdef __WXMAC__ #include "wx/osx/private.h" +// for themeing support +#include #endif #include "wx/arrimpl.cpp" @@ -259,7 +261,7 @@ void wxAuiDefaultToolBarArt::DrawLabel( int text_x, text_y; text_x = rect.x + 1; text_y = rect.y + (rect.height-text_height)/2; - dc.DrawText(item.label, text_x, text_y); + dc.DrawText(item.GetLabel(), text_x, text_y); dc.DestroyClippingRegion(); } @@ -280,7 +282,7 @@ void wxAuiDefaultToolBarArt::DrawButton( dc.GetTextExtent(wxT("ABCDHgj"), &tx, &text_height); text_width = 0; - dc.GetTextExtent(item.label, &text_width, &ty); + dc.GetTextExtent(item.GetLabel(), &text_width, &ty); } int bmp_x = 0, bmp_y = 0; @@ -290,11 +292,11 @@ void wxAuiDefaultToolBarArt::DrawButton( { bmp_x = rect.x + (rect.width/2) - - (item.bitmap.GetWidth()/2); + (item.GetBitmap().GetWidth()/2); bmp_y = rect.y + ((rect.height-text_height)/2) - - (item.bitmap.GetHeight()/2); + (item.GetBitmap().GetHeight()/2); text_x = rect.x + (rect.width/2) - (text_width/2) + 1; text_y = rect.y + rect.height - text_height - 1; @@ -305,36 +307,36 @@ void wxAuiDefaultToolBarArt::DrawButton( bmp_y = rect.y + (rect.height/2) - - (item.bitmap.GetHeight()/2); + (item.GetBitmap().GetHeight()/2); - text_x = bmp_x + 3 + item.bitmap.GetWidth(); + text_x = bmp_x + 3 + item.GetBitmap().GetWidth(); text_y = rect.y + (rect.height/2) - (text_height/2); } - if (!(item.state & wxAUI_BUTTON_STATE_DISABLED)) + if (!(item.GetState() & wxAUI_BUTTON_STATE_DISABLED)) { - if (item.state & wxAUI_BUTTON_STATE_PRESSED) + if (item.GetState() & wxAUI_BUTTON_STATE_PRESSED) { dc.SetPen(wxPen(m_highlight_colour)); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 150))); dc.DrawRectangle(rect); } - else if ((item.state & wxAUI_BUTTON_STATE_HOVER) || item.sticky == true) + else if ((item.GetState() & wxAUI_BUTTON_STATE_HOVER) || item.IsSticky()) { dc.SetPen(wxPen(m_highlight_colour)); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170))); // draw an even lighter background for checked item hovers (since // the hover background is the same color as the check background) - if (item.state & wxAUI_BUTTON_STATE_CHECKED) + if (item.GetState() & wxAUI_BUTTON_STATE_CHECKED) dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 180))); dc.DrawRectangle(rect); } - else if (item.state & wxAUI_BUTTON_STATE_CHECKED) + else if (item.GetState() & wxAUI_BUTTON_STATE_CHECKED) { // it's important to put this code in an else statment after the // hover, otherwise hovers won't draw properly for checked items @@ -345,10 +347,10 @@ void wxAuiDefaultToolBarArt::DrawButton( } wxBitmap bmp; - if (item.state & wxAUI_BUTTON_STATE_DISABLED) - bmp = item.disabled_bitmap; + if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED) + bmp = item.GetDisabledBitmap(); else - bmp = item.bitmap; + bmp = item.GetBitmap(); if (!bmp.IsOk()) return; @@ -357,12 +359,12 @@ void wxAuiDefaultToolBarArt::DrawButton( // set the item's text color based on if it is disabled dc.SetTextForeground(*wxBLACK); - if (item.state & wxAUI_BUTTON_STATE_DISABLED) + if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED) dc.SetTextForeground(DISABLED_TEXT_COLOR); - if ( (m_flags & wxAUI_TB_TEXT) && !item.label.empty() ) + if ( (m_flags & wxAUI_TB_TEXT) && !item.GetLabel().empty() ) { - dc.DrawText(item.label, text_x, text_y); + dc.DrawText(item.GetLabel(), text_x, text_y); } } @@ -396,7 +398,7 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton( text_width = 0; } - dc.GetTextExtent(item.label, &text_width, &ty); + dc.GetTextExtent(item.GetLabel(), &text_width, &ty); } @@ -413,10 +415,10 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton( { bmp_x = button_rect.x + (button_rect.width/2) - - (item.bitmap.GetWidth()/2); + (item.GetBitmap().GetWidth()/2); bmp_y = button_rect.y + ((button_rect.height-text_height)/2) - - (item.bitmap.GetHeight()/2); + (item.GetBitmap().GetHeight()/2); text_x = rect.x + (rect.width/2) - (text_width/2) + 1; text_y = rect.y + rect.height - text_height - 1; @@ -427,24 +429,24 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton( bmp_y = rect.y + (rect.height/2) - - (item.bitmap.GetHeight()/2); + (item.GetBitmap().GetHeight()/2); - text_x = bmp_x + 3 + item.bitmap.GetWidth(); + text_x = bmp_x + 3 + item.GetBitmap().GetWidth(); text_y = rect.y + (rect.height/2) - (text_height/2); } - if (item.state & wxAUI_BUTTON_STATE_PRESSED) + if (item.GetState() & wxAUI_BUTTON_STATE_PRESSED) { dc.SetPen(wxPen(m_highlight_colour)); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 140))); dc.DrawRectangle(button_rect); dc.DrawRectangle(dropdown_rect); } - else if (item.state & wxAUI_BUTTON_STATE_HOVER || - item.sticky == true) + else if (item.GetState() & wxAUI_BUTTON_STATE_HOVER || + item.IsSticky()) { dc.SetPen(wxPen(m_highlight_colour)); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170))); @@ -454,14 +456,14 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton( wxBitmap bmp; wxBitmap dropbmp; - if (item.state & wxAUI_BUTTON_STATE_DISABLED) + if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED) { - bmp = item.disabled_bitmap; + bmp = item.GetDisabledBitmap(); dropbmp = m_disabled_button_dropdown_bmp; } else { - bmp = item.bitmap; + bmp = item.GetBitmap(); dropbmp = m_button_dropdown_bmp; } @@ -473,12 +475,12 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton( // set the item's text color based on if it is disabled dc.SetTextForeground(*wxBLACK); - if (item.state & wxAUI_BUTTON_STATE_DISABLED) + if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED) dc.SetTextForeground(DISABLED_TEXT_COLOR); - if ( (m_flags & wxAUI_TB_TEXT) && !item.label.empty() ) + if ( (m_flags & wxAUI_TB_TEXT) && !item.GetLabel().empty() ) { - dc.DrawText(item.label, text_x, text_y); + dc.DrawText(item.GetLabel(), text_x, text_y); } } @@ -506,7 +508,7 @@ void wxAuiDefaultToolBarArt::DrawControlLabel( text_width = 0; } - dc.GetTextExtent(item.label, &text_width, &ty); + dc.GetTextExtent(item.GetLabel(), &text_width, &ty); // don't draw the label if it is wider than the item width if (text_width > rect.width) @@ -518,9 +520,9 @@ void wxAuiDefaultToolBarArt::DrawControlLabel( text_x = rect.x + (rect.width/2) - (text_width/2) + 1; text_y = rect.y + rect.height - text_height - 1; - if ( (m_flags & wxAUI_TB_TEXT) && !item.label.empty() ) + if ( (m_flags & wxAUI_TB_TEXT) && !item.GetLabel().empty() ) { - dc.DrawText(item.label, text_x, text_y); + dc.DrawText(item.GetLabel(), text_x, text_y); } } @@ -536,7 +538,7 @@ wxSize wxAuiDefaultToolBarArt::GetLabelSize( dc.GetTextExtent(wxT("ABCDHgj"), &width, &height); // get item's width - width = item.min_size.GetWidth(); + width = item.GetMinSize().GetWidth(); return wxSize(width, height); } @@ -546,11 +548,11 @@ wxSize wxAuiDefaultToolBarArt::GetToolSize( wxWindow* WXUNUSED(wnd), const wxAuiToolBarItem& item) { - if (!item.bitmap.IsOk() && !(m_flags & wxAUI_TB_TEXT)) + if (!item.GetBitmap().IsOk() && !(m_flags & wxAUI_TB_TEXT)) return wxSize(16,16); - int width = item.bitmap.GetWidth(); - int height = item.bitmap.GetHeight(); + int width = item.GetBitmap().GetWidth(); + int height = item.GetBitmap().GetHeight(); if (m_flags & wxAUI_TB_TEXT) { @@ -562,21 +564,21 @@ wxSize wxAuiDefaultToolBarArt::GetToolSize( dc.GetTextExtent(wxT("ABCDHgj"), &tx, &ty); height += ty; - if ( !item.label.empty() ) + if ( !item.GetLabel().empty() ) { - dc.GetTextExtent(item.label, &tx, &ty); + dc.GetTextExtent(item.GetLabel(), &tx, &ty); width = wxMax(width, tx+6); } } else if ( m_text_orientation == wxAUI_TBTOOL_TEXT_RIGHT && - !item.label.empty() ) + !item.GetLabel().empty() ) { width += 3; // space between left border and bitmap width += 3; // space between bitmap and text - if ( !item.label.empty() ) + if ( !item.GetLabel().empty() ) { - dc.GetTextExtent(item.label, &tx, &ty); + dc.GetTextExtent(item.GetLabel(), &tx, &ty); width += tx; height = wxMax(height, ty); } @@ -584,7 +586,7 @@ wxSize wxAuiDefaultToolBarArt::GetToolSize( } // if the tool has a dropdown button, add it to the width - if (item.dropdown == true) + if (item.HasDropDown()) width += (BUTTON_DROPDOWN_WIDTH+4); return wxSize(width, height); @@ -729,22 +731,22 @@ int wxAuiDefaultToolBarArt::ShowDropDown(wxWindow* wnd, { wxAuiToolBarItem& item = items.Item(i); - if (item.kind == wxITEM_NORMAL) + if (item.GetKind() == wxITEM_NORMAL) { - wxString text = item.short_help; + wxString text = item.GetShortHelp(); if (text.empty()) - text = item.label; + text = item.GetLabel(); if (text.empty()) text = wxT(" "); - wxMenuItem* m = new wxMenuItem(&menuPopup, item.id, text, item.short_help); + wxMenuItem* m = new wxMenuItem(&menuPopup, item.GetId(), text, item.GetShortHelp()); - m->SetBitmap(item.bitmap); + m->SetBitmap(item.GetBitmap()); menuPopup.Append(m); items_added++; } - else if (item.kind == wxITEM_SEPARATOR) + else if (item.GetKind() == wxITEM_SEPARATOR) { if (items_added > 0) menuPopup.AppendSeparator(); @@ -824,7 +826,7 @@ wxAuiToolBar::wxAuiToolBar(wxWindow* parent, SetFont(*wxNORMAL_FONT); m_art->SetFlags((unsigned int)m_style); SetExtraStyle(wxWS_EX_PROCESS_IDLE); - if (style & wxAUI_TB_HORZ_TEXT) + if (style & wxAUI_TB_HORZ_LAYOUT) SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT); } @@ -857,7 +859,7 @@ void wxAuiToolBar::SetWindowStyleFlag(long style) else m_overflow_visible = false; - if (style & wxAUI_TB_HORZ_TEXT) + if (style & wxAUI_TB_HORZ_LAYOUT) SetToolTextOrientation(wxAUI_TBTOOL_TEXT_RIGHT); else SetToolTextOrientation(wxAUI_TBTOOL_TEXT_BOTTOM); @@ -885,13 +887,13 @@ wxAuiToolBarArt* wxAuiToolBar::GetArtProvider() const -void wxAuiToolBar::AddTool(int tool_id, +wxAuiToolBarItem* wxAuiToolBar::AddTool(int tool_id, const wxString& label, const wxBitmap& bitmap, const wxString& short_help_string, wxItemKind kind) { - AddTool(tool_id, + return AddTool(tool_id, label, bitmap, wxNullBitmap, @@ -902,7 +904,7 @@ void wxAuiToolBar::AddTool(int tool_id, } -void wxAuiToolBar::AddTool(int tool_id, +wxAuiToolBarItem* wxAuiToolBar::AddTool(int tool_id, const wxString& label, const wxBitmap& bitmap, const wxBitmap& disabled_bitmap, @@ -920,7 +922,7 @@ void wxAuiToolBar::AddTool(int tool_id, item.long_help = long_help_string; item.active = true; item.dropdown = false; - item.space_pixels = 0; + item.spacer_pixels = 0; item.id = tool_id; item.state = 0; item.proportion = 0; @@ -941,11 +943,11 @@ void wxAuiToolBar::AddTool(int tool_id, item.disabled_bitmap = MakeDisabledBitmap(item.bitmap); } } - m_items.Add(item); + return &m_items.Last(); } -void wxAuiToolBar::AddControl(wxControl* control, +wxAuiToolBarItem* wxAuiToolBar::AddControl(wxControl* control, const wxString& label) { wxAuiToolBarItem item; @@ -955,7 +957,7 @@ void wxAuiToolBar::AddControl(wxControl* control, item.disabled_bitmap = wxNullBitmap; item.active = true; item.dropdown = false; - item.space_pixels = 0; + item.spacer_pixels = 0; item.id = control->GetId(); item.state = 0; item.proportion = 0; @@ -966,9 +968,10 @@ void wxAuiToolBar::AddControl(wxControl* control, item.sticky = false; m_items.Add(item); + return &m_items.Last(); } -void wxAuiToolBar::AddLabel(int tool_id, +wxAuiToolBarItem* wxAuiToolBar::AddLabel(int tool_id, const wxString& label, const int width) { @@ -983,7 +986,7 @@ void wxAuiToolBar::AddLabel(int tool_id, item.disabled_bitmap = wxNullBitmap; item.active = true; item.dropdown = false; - item.space_pixels = 0; + item.spacer_pixels = 0; item.id = tool_id; item.state = 0; item.proportion = 0; @@ -994,9 +997,10 @@ void wxAuiToolBar::AddLabel(int tool_id, item.sticky = false; m_items.Add(item); + return &m_items.Last(); } -void wxAuiToolBar::AddSeparator() +wxAuiToolBarItem* wxAuiToolBar::AddSeparator() { wxAuiToolBarItem item; item.window = NULL; @@ -1015,9 +1019,10 @@ void wxAuiToolBar::AddSeparator() item.sticky = false; m_items.Add(item); + return &m_items.Last(); } -void wxAuiToolBar::AddSpacer(int pixels) +wxAuiToolBarItem* wxAuiToolBar::AddSpacer(int pixels) { wxAuiToolBarItem item; item.window = NULL; @@ -1026,7 +1031,7 @@ void wxAuiToolBar::AddSpacer(int pixels) item.disabled_bitmap = wxNullBitmap; item.active = true; item.dropdown = false; - item.space_pixels = pixels; + item.spacer_pixels = pixels; item.id = -1; item.state = 0; item.proportion = 0; @@ -1037,9 +1042,10 @@ void wxAuiToolBar::AddSpacer(int pixels) item.sticky = false; m_items.Add(item); + return &m_items.Last(); } -void wxAuiToolBar::AddStretchSpacer(int proportion) +wxAuiToolBarItem* wxAuiToolBar::AddStretchSpacer(int proportion) { wxAuiToolBarItem item; item.window = NULL; @@ -1048,7 +1054,7 @@ void wxAuiToolBar::AddStretchSpacer(int proportion) item.disabled_bitmap = wxNullBitmap; item.active = true; item.dropdown = false; - item.space_pixels = 0; + item.spacer_pixels = 0; item.id = -1; item.state = 0; item.proportion = proportion; @@ -1059,6 +1065,7 @@ void wxAuiToolBar::AddStretchSpacer(int proportion) item.sticky = false; m_items.Add(item); + return &m_items.Last(); } void wxAuiToolBar::Clear() @@ -1772,7 +1779,7 @@ bool wxAuiToolBar::Realize() if (item.proportion > 0) sizer_item = sizer->AddStretchSpacer(item.proportion); else - sizer_item = sizer->Add(item.space_pixels, 1); + sizer_item = sizer->Add(item.spacer_pixels, 1); break; case wxITEM_CONTROL: @@ -1784,9 +1791,11 @@ bool wxAuiToolBar::Realize() vert_sizer->AddStretchSpacer(1); ctrl_sizer_item = vert_sizer->Add(item.window, 0, wxEXPAND); vert_sizer->AddStretchSpacer(1); - if ( (m_style & wxAUI_TB_TEXT) && !item.label.empty() ) + if ( (m_style & wxAUI_TB_TEXT) && + m_tool_text_orientation == wxAUI_TBTOOL_TEXT_BOTTOM && + !item.GetLabel().empty() ) { - wxSize s = GetLabelSize(item.label); + wxSize s = GetLabelSize(item.GetLabel()); vert_sizer->Add(1, s.y); }