From 62facf4dc7bd7aeb58e50bf9ebf1278c4932a18f Mon Sep 17 00:00:00 2001 From: Maarten ter Huurne Date: Sun, 23 Oct 2011 12:30:20 +0200 Subject: [PATCH] IconButton: removed unused functionality. Labels were always right-aligned: this was the default and no other alignment was ever selected. Also removed unused getter and setter methods. --- src/iconbutton.cpp | 94 ++++++++-------------------------------------- src/iconbutton.h | 15 -------- 2 files changed, 16 insertions(+), 93 deletions(-) diff --git a/src/iconbutton.cpp b/src/iconbutton.cpp index f08f97c..515d5c7 100644 --- a/src/iconbutton.cpp +++ b/src/iconbutton.cpp @@ -11,14 +11,11 @@ IconButton::IconButton(GMenu2X *gmenu2x_, const string &icon, , gmenu2x(gmenu2x_) { this->icon = icon; - labelPosition = IconButton::DISP_RIGHT; - labelMargin = 2; - this->setLabel(label); + this->label = label; updateSurfaces(); } -void IconButton::updateSurfaces() -{ +void IconButton::updateSurfaces() { iconSurface = gmenu2x->sc[icon]; recalcSize(); } @@ -32,11 +29,11 @@ void IconButton::setPosition(int x, int y) { void IconButton::paint() { if (iconSurface) { - iconSurface->blit(gmenu2x->s,iconRect); + iconSurface->blit(gmenu2x->s, iconRect); } if (label != "") { gmenu2x->s->write(gmenu2x->font, label, labelRect.x, labelRect.y, - labelHAlign, labelVAlign); + ASFont::HAlignLeft, ASFont::VAlignMiddle); } } @@ -46,87 +43,28 @@ bool IconButton::paintHover() { void IconButton::recalcSize() { uint h = 0, w = 0; - uint margin = labelMargin; - - if (iconSurface == NULL || label == "") - margin = 0; - - if (iconSurface != NULL) { + if (iconSurface) { w += iconSurface->width(); h += iconSurface->height(); - iconRect.w = w; - iconRect.h = h; - iconRect.x = rect.x; - iconRect.y = rect.y; + iconRect = (SDL_Rect) { rect.x, rect.y, w, h }; } else { - iconRect.x = 0; - iconRect.y = 0; - iconRect.w = 0; - iconRect.h = 0; + iconRect = (SDL_Rect) { 0, 0, 0, 0 }; } if (label != "") { - labelRect.w = gmenu2x->font->getTextWidth(label); - labelRect.h = gmenu2x->font->getHeight(); - if (labelPosition == IconButton::DISP_LEFT || labelPosition == IconButton::DISP_RIGHT) { - w += margin + labelRect.w; - //if (labelRect.h > h) h = labelRect.h; - labelHAlign = ASFont::HAlignLeft; - labelVAlign = ASFont::VAlignMiddle; - } else { - h += margin + labelRect.h; - //if (labelRect.w > w) w = labelRect.w; - labelHAlign = ASFont::HAlignCenter; - labelVAlign = ASFont::VAlignTop; - } - - switch (labelPosition) { - case IconButton::DISP_BOTTOM: - labelRect.x = iconRect.x + iconRect.w/2; - labelRect.y = iconRect.y + iconRect.h + margin; - break; - case IconButton::DISP_TOP: - labelRect.x = iconRect.x + iconRect.w/2; - labelRect.y = rect.y; - iconRect.y += labelRect.h + margin; - break; - case IconButton::DISP_LEFT: - labelRect.x = rect.x; - labelRect.y = rect.y+h/2; - iconRect.x += labelRect.w + margin; - break; - default: - labelRect.x = iconRect.x + iconRect.w + margin; - labelRect.y = rect.y+h/2; - break; - } + uint margin = iconSurface ? 2 : 0; + labelRect = (SDL_Rect) { + iconRect.x + iconRect.w + margin, + rect.y + h / 2, + gmenu2x->font->getTextWidth(label), + gmenu2x->font->getHeight() + }; + w += margin + labelRect.w; } + setSize(w, h); } -const string &IconButton::getLabel() { - return label; -} - -void IconButton::setLabel(const string &label) { - this->label = label; -} - -void IconButton::setLabelPosition(int pos, int margin) { - labelPosition = pos; - labelMargin = margin; - recalcSize(); -} - -const string &IconButton::getIcon() { - return icon; -} - -void IconButton::setIcon(const string &icon) { - this->icon = icon; - updateSurfaces(); -} - void IconButton::setAction(ButtonAction action) { this->action = action; } diff --git a/src/iconbutton.h b/src/iconbutton.h index abbea9a..a7735f5 100644 --- a/src/iconbutton.h +++ b/src/iconbutton.h @@ -15,9 +15,6 @@ class IconButton : public Button { protected: GMenu2X *gmenu2x; string icon, label; - int labelPosition, labelMargin; - ASFont::HAlign labelHAlign; - ASFont::VAlign labelVAlign; void recalcSize(); SDL_Rect iconRect, labelRect; @@ -26,11 +23,6 @@ protected: void updateSurfaces(); public: - static const int DISP_RIGHT = 0; - static const int DISP_LEFT = 1; - static const int DISP_TOP = 2; - static const int DISP_BOTTOM = 3; - IconButton(GMenu2X *gmenu2x, const string &icon, const string &label=""); virtual ~IconButton() {}; @@ -39,13 +31,6 @@ public: virtual void setPosition(int x, int y); - const string &getLabel(); - void setLabel(const string &label); - void setLabelPosition(int pos, int margin); - - const string &getIcon(); - void setIcon(const string &icon); - void setAction(ButtonAction action); };