summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-02-22 19:28:24 +0300
committerAndrei Karas <akaras@inbox.ru>2014-02-22 19:28:24 +0300
commita21e7a1004f8c4b135451929bdd7fbb57ee55910 (patch)
tree26c0f30231f6244d08d0dae8b3ac9ee360b33105
parent7898171f05a06df0541031d7491127493947c939 (diff)
downloadManaVerse-a21e7a1004f8c4b135451929bdd7fbb57ee55910.tar.gz
ManaVerse-a21e7a1004f8c4b135451929bdd7fbb57ee55910.tar.bz2
ManaVerse-a21e7a1004f8c4b135451929bdd7fbb57ee55910.tar.xz
ManaVerse-a21e7a1004f8c4b135451929bdd7fbb57ee55910.zip
fix touchactionmodel.
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/Makefile.am1
-rw-r--r--src/gui/models/touchactionmodel.cpp93
-rw-r--r--src/gui/widgets/setuptouchitem.cpp58
4 files changed, 95 insertions, 58 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e5ddcd8f8..d48d8b50e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -228,6 +228,7 @@ SET(SRCS
gui/widgets/guitable.h
gui/models/tablemodel.cpp
gui/models/tablemodel.h
+ gui/models/touchactionmodel.cpp
gui/models/touchactionmodel.h
gui/widgets/tabstrip.cpp
gui/widgets/tabstrip.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 4a788fa77..45576ab99 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -324,6 +324,7 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \
gui/widgets/tabbedarea.h \
gui/models/tablemodel.cpp \
gui/models/tablemodel.h \
+ gui/models/touchactionmodel.cpp \
gui/models/touchactionmodel.h \
gui/widgets/tabstrip.cpp \
gui/widgets/tabstrip.h \
diff --git a/src/gui/models/touchactionmodel.cpp b/src/gui/models/touchactionmodel.cpp
new file mode 100644
index 000000000..e6cc4d046
--- /dev/null
+++ b/src/gui/models/touchactionmodel.cpp
@@ -0,0 +1,93 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2012-2014 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "gui/widgets/setuptouchitem.h"
+
+#include "gui/setupactiondata.h"
+
+#include "gui/models/touchactionmodel.h"
+
+#include "gui/widgets/dropdown.h"
+#include "gui/widgets/horizontcontainer.h"
+#include "gui/widgets/label.h"
+#include "gui/widgets/vertcontainer.h"
+
+#include "gui/widgets/tabs/setuptabscroll.h"
+
+#include <algorithm>
+
+#include "debug.h"
+
+static class SortTouchActionFunctor final
+{
+ public:
+ bool operator() (const SetupActionData *const data1,
+ const SetupActionData *const data2) const
+ {
+ if (!data1 || !data2)
+ return false;
+ return data1->name < data2->name;
+ }
+} touchActionSorter;
+
+TouchActionsModel::TouchActionsModel() :
+ NamesModel(),
+ mActionId(),
+ mActionToSelection()
+{
+ std::vector<SetupActionData*> data;
+
+ for (int f = 0, sz = touchActionDataSize; f < sz; f ++)
+ {
+ int k = 0;
+ while (!touchActionData[f][k].name.empty())
+ {
+ data.push_back(&touchActionData[f][k]);
+ k ++;
+ }
+ }
+
+ std::sort(data.begin(), data.end(), touchActionSorter);
+ int cnt = 0;
+ FOR_EACH (std::vector<SetupActionData*>::iterator, it, data)
+ {
+ const SetupActionData *const data1 = *it;
+ mNames.push_back(data1->name);
+ mActionId.push_back(data1->actionId);
+ mActionToSelection[data1->actionId] = cnt;
+ cnt ++;
+ }
+}
+
+int TouchActionsModel::getActionFromSelection(const int sel) const
+{
+ if (sel < 0 || sel > static_cast<signed int>(mActionId.size()))
+ return -1;
+ return mActionId[sel];
+}
+
+int TouchActionsModel::getSelectionFromAction(const int action) const
+{
+ const std::map<int, int>::const_iterator it
+ = mActionToSelection.find(action);
+ if (it == mActionToSelection.end())
+ return 0;
+ return (*it).second;
+}
diff --git a/src/gui/widgets/setuptouchitem.cpp b/src/gui/widgets/setuptouchitem.cpp
index c620686fd..99a774ecd 100644
--- a/src/gui/widgets/setuptouchitem.cpp
+++ b/src/gui/widgets/setuptouchitem.cpp
@@ -35,64 +35,6 @@
#include "debug.h"
-static class SortTouchActionFunctor final
-{
- public:
- bool operator() (const SetupActionData *const data1,
- const SetupActionData *const data2) const
- {
- if (!data1 || !data2)
- return false;
- return data1->name < data2->name;
- }
-} touchActionSorter;
-
-TouchActionsModel::TouchActionsModel() :
- NamesModel(),
- mActionId(),
- mActionToSelection()
-{
- std::vector<SetupActionData*> data;
-
- for (int f = 0, sz = touchActionDataSize; f < sz; f ++)
- {
- int k = 0;
- while (!touchActionData[f][k].name.empty())
- {
- data.push_back(&touchActionData[f][k]);
- k ++;
- }
- }
-
- std::sort(data.begin(), data.end(), touchActionSorter);
- int cnt = 0;
- FOR_EACH (std::vector<SetupActionData*>::iterator, it, data)
- {
- const SetupActionData *const data1 = *it;
- mNames.push_back(data1->name);
- mActionId.push_back(data1->actionId);
- mActionToSelection[data1->actionId] = cnt;
- cnt ++;
- }
-}
-
-int TouchActionsModel::getActionFromSelection(const int sel) const
-{
- if (sel < 0 || sel > static_cast<signed int>(mActionId.size()))
- return -1;
- return mActionId[sel];
-}
-
-int TouchActionsModel::getSelectionFromAction(const int action) const
-{
- const std::map<int, int>::const_iterator it
- = mActionToSelection.find(action);
- if (it == mActionToSelection.end())
- return 0;
- return (*it).second;
-}
-
-
SetupActionDropDown::SetupActionDropDown(const std::string &restrict text,
const std::string &restrict
description,