summaryrefslogtreecommitdiff
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-11-30 16:05:16 +0300
committerAndrei Karas <akaras@inbox.ru>2013-11-30 16:09:34 +0300
commite768add9d172d78bd5deb7e98d228fb50bf8e2c5 (patch)
tree44b9767ce542e3f5649b2f1b14e66dc4e6472941 /src/gui/widgets
parente469ec3a8b0c41168bcb3c3071c252e196ae78a8 (diff)
downloadplus-e768add9d172d78bd5deb7e98d228fb50bf8e2c5.tar.gz
plus-e768add9d172d78bd5deb7e98d228fb50bf8e2c5.tar.bz2
plus-e768add9d172d78bd5deb7e98d228fb50bf8e2c5.tar.xz
plus-e768add9d172d78bd5deb7e98d228fb50bf8e2c5.zip
add support for unselectable guitables.
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/guitable.cpp18
-rw-r--r--src/gui/widgets/guitable.h4
-rw-r--r--src/gui/widgets/tabs/setup_relations.cpp1
3 files changed, 16 insertions, 7 deletions
diff --git a/src/gui/widgets/guitable.cpp b/src/gui/widgets/guitable.cpp
index 15765763e..9d6eb0926 100644
--- a/src/gui/widgets/guitable.cpp
+++ b/src/gui/widgets/guitable.cpp
@@ -104,7 +104,8 @@ GuiTable::GuiTable(const Widget2 *const widget,
mSelectedColumn(-1),
mLinewiseMode(false),
mWrappingEnabled(false),
- mOpaque(opacity)
+ mOpaque(opacity),
+ mSelectable(true)
{
mBackgroundColor = getThemeColor(Theme::BACKGROUND);
@@ -157,11 +158,14 @@ void GuiTable::recomputeDimensions()
const int columns_nr = mModel->getColumns();
int width = 0;
- if (mSelectedRow >= rows_nr)
- mSelectedRow = rows_nr - 1;
+ if (mSelectable)
+ {
+ if (mSelectedRow >= rows_nr)
+ mSelectedRow = rows_nr - 1;
- if (mSelectedColumn >= columns_nr)
- mSelectedColumn = columns_nr - 1;
+ if (mSelectedColumn >= columns_nr)
+ mSelectedColumn = columns_nr - 1;
+ }
for (int i = 0; i < columns_nr; i++)
width += getColumnWidth(i);
@@ -204,7 +208,7 @@ int GuiTable::getColumnWidth(const int i) const
void GuiTable::setSelectedRow(const int selected)
{
- if (!mModel)
+ if (!mModel || !mSelectable)
{
mSelectedRow = -1;
}
@@ -457,7 +461,7 @@ void GuiTable::keyPressed(gcn::KeyEvent& keyEvent)
// -- MouseListener notifications
void GuiTable::mousePressed(gcn::MouseEvent& mouseEvent)
{
- if (!mModel)
+ if (!mModel || !mSelectable)
return;
if (mouseEvent.getButton() == gcn::MouseEvent::LEFT)
diff --git a/src/gui/widgets/guitable.h b/src/gui/widgets/guitable.h
index 072563715..d41e5589b 100644
--- a/src/gui/widgets/guitable.h
+++ b/src/gui/widgets/guitable.h
@@ -158,6 +158,9 @@ public:
void requestFocus();
+ void setSelectable(bool b)
+ { mSelectable = b; }
+
protected:
/** Frees all action listeners on inner widgets. */
void uninstallActionListeners();
@@ -194,6 +197,7 @@ private:
bool mLinewiseMode;
bool mWrappingEnabled;
bool mOpaque;
+ bool mSelectable;
};
#endif // GUI_WIDGETS_GUITABLE_H
diff --git a/src/gui/widgets/tabs/setup_relations.cpp b/src/gui/widgets/tabs/setup_relations.cpp
index c1b6cc1ed..8f5802371 100644
--- a/src/gui/widgets/tabs/setup_relations.cpp
+++ b/src/gui/widgets/tabs/setup_relations.cpp
@@ -270,6 +270,7 @@ Setup_Relations::Setup_Relations(const Widget2 *const widget) :
RELATION_CHOICE_COLUMN_WIDTH);
mPlayerTitleTable->setBackgroundColor(getThemeColor(
Theme::TABLE_BACKGROUND));
+ mPlayerTitleTable->setSelectable(false);
for (int i = 0; i < COLUMNS_NR; i++)
{