diff options
Diffstat (limited to 'src/gui/widgets/dropdown.cpp')
-rw-r--r-- | src/gui/widgets/dropdown.cpp | 25 |
1 files changed, 10 insertions, 15 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); } |