From 4e95f451a793dbac5dbc31361cdc5049de48c3cc Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 24 Dec 2012 22:32:04 +0300 Subject: Add color for selected text in listboxes. New theme color: LISTBOX_SELECTED --- src/gui/widgets/extendedlistbox.cpp | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) (limited to 'src/gui/widgets/extendedlistbox.cpp') diff --git a/src/gui/widgets/extendedlistbox.cpp b/src/gui/widgets/extendedlistbox.cpp index bb138b456..bad1472ac 100644 --- a/src/gui/widgets/extendedlistbox.cpp +++ b/src/gui/widgets/extendedlistbox.cpp @@ -82,18 +82,37 @@ void ExtendedListBox::draw(gcn::Graphics *graphics) for (int i = 0, y = 0; i < mListModel->getNumberOfElements(); ++i, y += height) { - const Image *const image = model->getImageAt(i); + if (i != mSelected) + { + const Image *const image = model->getImageAt(i); + if (!image) + { + graphics->drawText(mListModel->getElementAt(i), + mPadding, y + textPos); + } + else + { + g->drawImage(image, mImagePadding, y + (height + - image->getHeight()) / 2 + mPadding); + graphics->drawText(mListModel->getElementAt(i), + image->getWidth() + mImagePadding + mSpacing, y + textPos); + } + } + } + if (mSelected >= 0) + { + const Image *const image = model->getImageAt(mSelected); if (!image) { - graphics->drawText(mListModel->getElementAt(i), - mPadding, y + textPos); + graphics->drawText(mListModel->getElementAt(mSelected), + mPadding, mSelected * height + textPos); } else { - g->drawImage(image, mImagePadding, y + (height - - image->getHeight()) / 2 + mPadding); - graphics->drawText(mListModel->getElementAt(i), - image->getWidth() + mImagePadding + mSpacing, y + textPos); + graphics->setColor(mForegroundSelectedColor); + graphics->drawText(mListModel->getElementAt(mSelected), + image->getWidth() + mImagePadding + mSpacing, + mSelected * height + textPos); } } BLOCK_END("ExtendedListBox::draw") -- cgit v1.2.3-70-g09d2