summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/dropdown.cpp25
-rw-r--r--src/gui/widgets/dropdown.h35
2 files changed, 14 insertions, 46 deletions
diff --git a/src/gui/widgets/dropdown.cpp b/src/gui/widgets/dropdown.cpp
index 8dabc3f9..b5a75093 100644
--- a/src/gui/widgets/dropdown.cpp
+++ b/src/gui/widgets/dropdown.cpp
@@ -41,10 +41,10 @@ Image *DropDown::buttons[2][2];
ImageRect DropDown::skin;
float DropDown::mAlpha = 1.0;
-DropDown::DropDown(gcn::ListModel *listModel, gcn::ScrollArea *scrollArea,
- gcn::ListBox *listBox, bool opacity):
- gcn::DropDown::DropDown(listModel, scrollArea, listBox),
- mOpaque(opacity)
+DropDown::DropDown(gcn::ListModel *listModel):
+ gcn::DropDown::DropDown(listModel,
+ new ScrollArea,
+ new ListBox(listModel))
{
setFrameSize(2);
@@ -108,6 +108,9 @@ DropDown::~DropDown()
for_each(skin.grid, skin.grid + 9, dtor<Image*>());
}
+
+ delete mScrollArea;
+ delete mListBox;
}
void DropDown::draw(gcn::Graphics* graphics)
@@ -134,7 +137,7 @@ void DropDown::draw(gcn::Graphics* graphics)
}
}
- const int alpha = (int)(mAlpha * 255.0f);
+ const int alpha = (int) (mAlpha * 255.0f);
gcn::Color faceColor = getBaseColor();
faceColor.a = alpha;
const gcn::Color* highlightColor = &guiPalette->getColor(Palette::HIGHLIGHT,
@@ -142,18 +145,10 @@ void DropDown::draw(gcn::Graphics* graphics)
gcn::Color shadowColor = faceColor - 0x303030;
shadowColor.a = alpha;
- if (mOpaque)
- {
- graphics->setColor(guiPalette->getColor(Palette::BACKGROUND, alpha));
- graphics->fillRectangle(gcn::Rectangle(0, 0, getWidth(), h));
-
- graphics->setColor(guiPalette->getColor(Palette::TEXT, alpha));
- }
-
- graphics->setFont(getFont());
-
if (mListBox->getListModel() && mListBox->getSelected() >= 0)
{
+ graphics->setFont(getFont());
+ graphics->setColor(guiPalette->getColor(Palette::TEXT, alpha));
graphics->drawText(mListBox->getListModel()->getElementAt(mListBox->getSelected()), 1, 0);
}
diff --git a/src/gui/widgets/dropdown.h b/src/gui/widgets/dropdown.h
index 601d55c8..83d43f63 100644
--- a/src/gui/widgets/dropdown.h
+++ b/src/gui/widgets/dropdown.h
@@ -28,11 +28,9 @@ class Image;
class ImageRect;
/**
- * A drop down box from which you can select different values. It is one of
- * the most complicated Widgets you will find in Guichan. For drawing the
- * DroppedDown box it uses one ScrollArea and one ListBox. It also uses an
- * internal FocusHandler to handle the focus of the internal ScollArea and
- * ListBox. DropDown uses a ListModel to handle the list. To be able to use
+ * A drop down box from which you can select different values.
+ *
+ * A ListModel provides the contents of the drop down. To be able to use
* DropDown you must give DropDown an implemented ListModel which represents
* your list.
*/
@@ -47,37 +45,14 @@ class DropDown : public gcn::DropDown
* @param listBox the listBox to use.
* @see ListModel, ScrollArea, ListBox.
*/
- DropDown(gcn::ListModel *listModel = NULL,
- gcn::ScrollArea *scrollArea = NULL,
- gcn::ListBox *listBox = NULL,
- bool opacity = true);
+ DropDown(gcn::ListModel *listModel = NULL);
- /**
- * Destructor.
- */
~DropDown();
void draw(gcn::Graphics *graphics);
void drawFrame(gcn::Graphics *graphics);
- /**
- * Sets the widget to be opaque, that is sets the widget to display its
- * background.
- *
- * @param opaque True if the widget should be opaque, false otherwise.
- */
- void setOpaque(bool opaque) { mOpaque = opaque; }
-
- /**
- * Checks if the widget is opaque, that is if the widget area displays
- * its background.
- *
- * @return True if the widget is opaque, false otherwise.
- */
- bool isOpaque() const { return mOpaque; }
-
-
protected:
/**
* Draws the button with the little down arrow.
@@ -91,8 +66,6 @@ class DropDown : public gcn::DropDown
static Image *buttons[2][2];
static ImageRect skin;
static float mAlpha;
-
- bool mOpaque;
};
#endif // end DROPDOWN_H