make members private in various wxAuiToolBar helper classes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Benjamin Williams
2008-09-03 14:06:26 +00:00
parent 6502dc6823
commit e42f2c165f
2 changed files with 112 additions and 63 deletions

View File

@@ -83,7 +83,8 @@ public:
int GetToolId() const { return tool_id; } int GetToolId() const { return tool_id; }
void SetToolId(int id) { tool_id = id; } void SetToolId(int id) { tool_id = id; }
public: private:
bool is_dropdown_clicked; bool is_dropdown_clicked;
wxPoint click_pt; wxPoint click_pt;
wxRect rect; wxRect rect;
@@ -98,13 +99,15 @@ private:
class WXDLLIMPEXP_AUI wxAuiToolBarItem class WXDLLIMPEXP_AUI wxAuiToolBarItem
{ {
friend class wxAuiToolBar;
public: public:
wxAuiToolBarItem() wxAuiToolBarItem()
{ {
window = NULL; window = NULL;
sizer_item = NULL; sizer_item = NULL;
space_pixels = 0; spacer_pixels = 0;
id = 0; id = 0;
kind = wxITEM_NORMAL; kind = wxITEM_NORMAL;
state = 0; // normal, enabled state = 0; // normal, enabled
@@ -137,7 +140,7 @@ public:
long_help = c.long_help; long_help = c.long_help;
sizer_item = c.sizer_item; sizer_item = c.sizer_item;
min_size = c.min_size; min_size = c.min_size;
space_pixels = c.space_pixels; spacer_pixels = c.spacer_pixels;
id = c.id; id = c.id;
kind = c.kind; kind = c.kind;
state = c.state; state = c.state;
@@ -148,7 +151,53 @@ public:
user_data = c.user_data; user_data = c.user_data;
} }
public:
wxWindow* GetWindow() { return window; }
int GetId() const { return id; }
int GetKind() const { return kind; }
int GetState() const { return state; }
wxSizerItem* GetSizerItem() const { return sizer_item; }
void SetLabel(const wxString& s) { label = s; }
const wxString& GetLabel() const { return label; }
void SetBitmap(const wxBitmap& bmp) { bitmap = bmp; }
const wxBitmap& GetBitmap() const { return bitmap; }
void SetDisabledBitmap(const wxBitmap& bmp) { disabled_bitmap = bmp; }
const wxBitmap& GetDisabledBitmap() const { return disabled_bitmap; }
void SetHoverBitmap(const wxBitmap& bmp) { hover_bitmap = bmp; }
const wxBitmap& GetHoverBitmap() const { return hover_bitmap; }
void SetShortHelp(const wxString& s) { short_help = s; }
const wxString& GetShortHelp() const { return short_help; }
void SetLongHelp(const wxString& s) { long_help = s; }
const wxString& GetLongHelp() const { return long_help; }
void SetMinSize(const wxSize& s) { min_size = s; }
const wxSize& GetMinSize() const { return min_size; }
void SetSpacerPixels(int s) { spacer_pixels = s; }
int GetSpacerPixels() const { return spacer_pixels; }
void SetProportion(int p) { proportion = p; }
int GetProportion() const { return proportion; }
void SetActive(bool b) { active = b; }
bool IsActive() const { return active; }
void SetHasDropDown(bool b) { dropdown = b; }
bool HasDropDown() const { return dropdown; }
void SetSticky(bool b) { sticky = b; }
bool IsSticky() const { return sticky; }
void SetUserData(long l) { user_data = l; }
long GetUserData() const { return user_data; }
private:
wxWindow* window; // item's associated window wxWindow* window; // item's associated window
wxString label; // label displayed on the item wxString label; // label displayed on the item
@@ -159,7 +208,7 @@ public:
wxString long_help; // long help (for status bar) wxString long_help; // long help (for status bar)
wxSizerItem* sizer_item; // sizer item wxSizerItem* sizer_item; // sizer item
wxSize min_size; // item's minimum size wxSize min_size; // item's minimum size
int space_pixels; // size of a spacer int spacer_pixels; // size of a spacer
int id; // item's id int id; // item's id
int kind; // item's kind int kind; // item's kind
int state; // state int state; // state

View File

@@ -259,7 +259,7 @@ void wxAuiDefaultToolBarArt::DrawLabel(
int text_x, text_y; int text_x, text_y;
text_x = rect.x + 1; text_x = rect.x + 1;
text_y = rect.y + (rect.height-text_height)/2; 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(); dc.DestroyClippingRegion();
} }
@@ -280,7 +280,7 @@ void wxAuiDefaultToolBarArt::DrawButton(
dc.GetTextExtent(wxT("ABCDHgj"), &tx, &text_height); dc.GetTextExtent(wxT("ABCDHgj"), &tx, &text_height);
text_width = 0; text_width = 0;
dc.GetTextExtent(item.label, &text_width, &ty); dc.GetTextExtent(item.GetLabel(), &text_width, &ty);
} }
int bmp_x = 0, bmp_y = 0; int bmp_x = 0, bmp_y = 0;
@@ -290,11 +290,11 @@ void wxAuiDefaultToolBarArt::DrawButton(
{ {
bmp_x = rect.x + bmp_x = rect.x +
(rect.width/2) - (rect.width/2) -
(item.bitmap.GetWidth()/2); (item.GetBitmap().GetWidth()/2);
bmp_y = rect.y + bmp_y = rect.y +
((rect.height-text_height)/2) - ((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_x = rect.x + (rect.width/2) - (text_width/2) + 1;
text_y = rect.y + rect.height - text_height - 1; text_y = rect.y + rect.height - text_height - 1;
@@ -305,36 +305,36 @@ void wxAuiDefaultToolBarArt::DrawButton(
bmp_y = rect.y + bmp_y = rect.y +
(rect.height/2) - (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 + text_y = rect.y +
(rect.height/2) - (rect.height/2) -
(text_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.SetPen(wxPen(m_highlight_colour));
dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 150))); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 150)));
dc.DrawRectangle(rect); 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.SetPen(wxPen(m_highlight_colour));
dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170))); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170)));
// draw an even lighter background for checked item hovers (since // draw an even lighter background for checked item hovers (since
// the hover background is the same color as the check background) // 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.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 180)));
dc.DrawRectangle(rect); 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 // it's important to put this code in an else statment after the
// hover, otherwise hovers won't draw properly for checked items // hover, otherwise hovers won't draw properly for checked items
@@ -345,10 +345,10 @@ void wxAuiDefaultToolBarArt::DrawButton(
} }
wxBitmap bmp; wxBitmap bmp;
if (item.state & wxAUI_BUTTON_STATE_DISABLED) if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED)
bmp = item.disabled_bitmap; bmp = item.GetDisabledBitmap();
else else
bmp = item.bitmap; bmp = item.GetBitmap();
if (!bmp.IsOk()) if (!bmp.IsOk())
return; return;
@@ -357,12 +357,12 @@ void wxAuiDefaultToolBarArt::DrawButton(
// set the item's text color based on if it is disabled // set the item's text color based on if it is disabled
dc.SetTextForeground(*wxBLACK); dc.SetTextForeground(*wxBLACK);
if (item.state & wxAUI_BUTTON_STATE_DISABLED) if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED)
dc.SetTextForeground(DISABLED_TEXT_COLOR); 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 +396,7 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton(
text_width = 0; text_width = 0;
} }
dc.GetTextExtent(item.label, &text_width, &ty); dc.GetTextExtent(item.GetLabel(), &text_width, &ty);
} }
@@ -413,10 +413,10 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton(
{ {
bmp_x = button_rect.x + bmp_x = button_rect.x +
(button_rect.width/2) - (button_rect.width/2) -
(item.bitmap.GetWidth()/2); (item.GetBitmap().GetWidth()/2);
bmp_y = button_rect.y + bmp_y = button_rect.y +
((button_rect.height-text_height)/2) - ((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_x = rect.x + (rect.width/2) - (text_width/2) + 1;
text_y = rect.y + rect.height - text_height - 1; text_y = rect.y + rect.height - text_height - 1;
@@ -427,24 +427,24 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton(
bmp_y = rect.y + bmp_y = rect.y +
(rect.height/2) - (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 + text_y = rect.y +
(rect.height/2) - (rect.height/2) -
(text_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.SetPen(wxPen(m_highlight_colour));
dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 140))); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 140)));
dc.DrawRectangle(button_rect); dc.DrawRectangle(button_rect);
dc.DrawRectangle(dropdown_rect); dc.DrawRectangle(dropdown_rect);
} }
else if (item.state & wxAUI_BUTTON_STATE_HOVER || else if (item.GetState() & wxAUI_BUTTON_STATE_HOVER ||
item.sticky == true) item.IsSticky())
{ {
dc.SetPen(wxPen(m_highlight_colour)); dc.SetPen(wxPen(m_highlight_colour));
dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170))); dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170)));
@@ -454,14 +454,14 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton(
wxBitmap bmp; wxBitmap bmp;
wxBitmap dropbmp; 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; dropbmp = m_disabled_button_dropdown_bmp;
} }
else else
{ {
bmp = item.bitmap; bmp = item.GetBitmap();
dropbmp = m_button_dropdown_bmp; dropbmp = m_button_dropdown_bmp;
} }
@@ -473,12 +473,12 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton(
// set the item's text color based on if it is disabled // set the item's text color based on if it is disabled
dc.SetTextForeground(*wxBLACK); dc.SetTextForeground(*wxBLACK);
if (item.state & wxAUI_BUTTON_STATE_DISABLED) if (item.GetState() & wxAUI_BUTTON_STATE_DISABLED)
dc.SetTextForeground(DISABLED_TEXT_COLOR); 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 +506,7 @@ void wxAuiDefaultToolBarArt::DrawControlLabel(
text_width = 0; 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 // don't draw the label if it is wider than the item width
if (text_width > rect.width) if (text_width > rect.width)
@@ -518,9 +518,9 @@ void wxAuiDefaultToolBarArt::DrawControlLabel(
text_x = rect.x + (rect.width/2) - (text_width/2) + 1; text_x = rect.x + (rect.width/2) - (text_width/2) + 1;
text_y = rect.y + rect.height - text_height - 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 +536,7 @@ wxSize wxAuiDefaultToolBarArt::GetLabelSize(
dc.GetTextExtent(wxT("ABCDHgj"), &width, &height); dc.GetTextExtent(wxT("ABCDHgj"), &width, &height);
// get item's width // get item's width
width = item.min_size.GetWidth(); width = item.GetMinSize().GetWidth();
return wxSize(width, height); return wxSize(width, height);
} }
@@ -546,11 +546,11 @@ wxSize wxAuiDefaultToolBarArt::GetToolSize(
wxWindow* WXUNUSED(wnd), wxWindow* WXUNUSED(wnd),
const wxAuiToolBarItem& item) 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); return wxSize(16,16);
int width = item.bitmap.GetWidth(); int width = item.GetBitmap().GetWidth();
int height = item.bitmap.GetHeight(); int height = item.GetBitmap().GetHeight();
if (m_flags & wxAUI_TB_TEXT) if (m_flags & wxAUI_TB_TEXT)
{ {
@@ -562,21 +562,21 @@ wxSize wxAuiDefaultToolBarArt::GetToolSize(
dc.GetTextExtent(wxT("ABCDHgj"), &tx, &ty); dc.GetTextExtent(wxT("ABCDHgj"), &tx, &ty);
height += 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); width = wxMax(width, tx+6);
} }
} }
else if ( m_text_orientation == wxAUI_TBTOOL_TEXT_RIGHT && 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 left border and bitmap
width += 3; // space between bitmap and text 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; width += tx;
height = wxMax(height, ty); height = wxMax(height, ty);
} }
@@ -584,7 +584,7 @@ wxSize wxAuiDefaultToolBarArt::GetToolSize(
} }
// if the tool has a dropdown button, add it to the width // if the tool has a dropdown button, add it to the width
if (item.dropdown == true) if (item.HasDropDown())
width += (BUTTON_DROPDOWN_WIDTH+4); width += (BUTTON_DROPDOWN_WIDTH+4);
return wxSize(width, height); return wxSize(width, height);
@@ -729,22 +729,22 @@ int wxAuiDefaultToolBarArt::ShowDropDown(wxWindow* wnd,
{ {
wxAuiToolBarItem& item = items.Item(i); 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()) if (text.empty())
text = item.label; text = item.GetLabel();
if (text.empty()) if (text.empty())
text = wxT(" "); 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); menuPopup.Append(m);
items_added++; items_added++;
} }
else if (item.kind == wxITEM_SEPARATOR) else if (item.GetKind() == wxITEM_SEPARATOR)
{ {
if (items_added > 0) if (items_added > 0)
menuPopup.AppendSeparator(); menuPopup.AppendSeparator();
@@ -920,7 +920,7 @@ void wxAuiToolBar::AddTool(int tool_id,
item.long_help = long_help_string; item.long_help = long_help_string;
item.active = true; item.active = true;
item.dropdown = false; item.dropdown = false;
item.space_pixels = 0; item.spacer_pixels = 0;
item.id = tool_id; item.id = tool_id;
item.state = 0; item.state = 0;
item.proportion = 0; item.proportion = 0;
@@ -955,7 +955,7 @@ void wxAuiToolBar::AddControl(wxControl* control,
item.disabled_bitmap = wxNullBitmap; item.disabled_bitmap = wxNullBitmap;
item.active = true; item.active = true;
item.dropdown = false; item.dropdown = false;
item.space_pixels = 0; item.spacer_pixels = 0;
item.id = control->GetId(); item.id = control->GetId();
item.state = 0; item.state = 0;
item.proportion = 0; item.proportion = 0;
@@ -983,7 +983,7 @@ void wxAuiToolBar::AddLabel(int tool_id,
item.disabled_bitmap = wxNullBitmap; item.disabled_bitmap = wxNullBitmap;
item.active = true; item.active = true;
item.dropdown = false; item.dropdown = false;
item.space_pixels = 0; item.spacer_pixels = 0;
item.id = tool_id; item.id = tool_id;
item.state = 0; item.state = 0;
item.proportion = 0; item.proportion = 0;
@@ -1026,7 +1026,7 @@ void wxAuiToolBar::AddSpacer(int pixels)
item.disabled_bitmap = wxNullBitmap; item.disabled_bitmap = wxNullBitmap;
item.active = true; item.active = true;
item.dropdown = false; item.dropdown = false;
item.space_pixels = pixels; item.spacer_pixels = pixels;
item.id = -1; item.id = -1;
item.state = 0; item.state = 0;
item.proportion = 0; item.proportion = 0;
@@ -1048,7 +1048,7 @@ void wxAuiToolBar::AddStretchSpacer(int proportion)
item.disabled_bitmap = wxNullBitmap; item.disabled_bitmap = wxNullBitmap;
item.active = true; item.active = true;
item.dropdown = false; item.dropdown = false;
item.space_pixels = 0; item.spacer_pixels = 0;
item.id = -1; item.id = -1;
item.state = 0; item.state = 0;
item.proportion = proportion; item.proportion = proportion;
@@ -1772,7 +1772,7 @@ bool wxAuiToolBar::Realize()
if (item.proportion > 0) if (item.proportion > 0)
sizer_item = sizer->AddStretchSpacer(item.proportion); sizer_item = sizer->AddStretchSpacer(item.proportion);
else else
sizer_item = sizer->Add(item.space_pixels, 1); sizer_item = sizer->Add(item.spacer_pixels, 1);
break; break;
case wxITEM_CONTROL: case wxITEM_CONTROL:
@@ -1784,9 +1784,9 @@ bool wxAuiToolBar::Realize()
vert_sizer->AddStretchSpacer(1); vert_sizer->AddStretchSpacer(1);
ctrl_sizer_item = vert_sizer->Add(item.window, 0, wxEXPAND); ctrl_sizer_item = vert_sizer->Add(item.window, 0, wxEXPAND);
vert_sizer->AddStretchSpacer(1); vert_sizer->AddStretchSpacer(1);
if ( (m_style & wxAUI_TB_TEXT) && !item.label.empty() ) if ( (m_style & wxAUI_TB_TEXT) && !item.GetLabel().empty() )
{ {
wxSize s = GetLabelSize(item.label); wxSize s = GetLabelSize(item.GetLabel());
vert_sizer->Add(1, s.y); vert_sizer->Add(1, s.y);
} }