summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/inventorywindow.cpp2
-rw-r--r--src/gui/setup_input.cpp777
-rw-r--r--src/gui/setup_input.h6
-rw-r--r--src/gui/setupactiondata.h951
-rw-r--r--src/gui/widgets/tabstrip.cpp5
-rw-r--r--src/gui/widgets/tabstrip.h4
6 files changed, 1051 insertions, 694 deletions
diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp
index d6fb95fe7..425130b57 100644
--- a/src/gui/inventorywindow.cpp
+++ b/src/gui/inventorywindow.cpp
@@ -139,7 +139,7 @@ InventoryWindow::InventoryWindow(Inventory *inventory):
mSlotsBar = new ProgressBar(0.0f, 100, 20, Theme::PROG_INVY_SLOTS);
int size = config.getIntValue("fontSize");
- mFilter = new TabStrip("filter_" + getWindowName(), size + 8, 0);
+ mFilter = new TabStrip("filter_" + getWindowName(), size + 8);
mFilter->addActionListener(this);
mFilter->setActionEventId("tag_");
diff --git a/src/gui/setup_input.cpp b/src/gui/setup_input.cpp
index 35badbe9c..a85a35975 100644
--- a/src/gui/setup_input.cpp
+++ b/src/gui/setup_input.cpp
@@ -23,15 +23,19 @@
#include "gui/setup_input.h"
+#include "configuration.h"
#include "inputmanager.h"
#include "keyboardconfig.h"
+#include "logger.h"
#include "gui/okdialog.h"
+#include "gui/setupactiondata.h"
#include "gui/widgets/button.h"
#include "gui/widgets/layouthelper.h"
#include "gui/widgets/listbox.h"
#include "gui/widgets/scrollarea.h"
+#include "gui/widgets/tabstrip.h"
#include "utils/gettext.h"
#include "utils/stringutils.h"
@@ -42,677 +46,6 @@
#include "debug.h"
-struct SetupActionData
-{
- std::string name;
- int actionId;
-};
-
-static SetupActionData const setupActionData[] =
-{
- {
- N_("Basic Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Move Up"),
- Input::KEY_MOVE_UP
- },
- {
- N_("Move Down"),
- Input::KEY_MOVE_DOWN
- },
- {
- N_("Move Left"),
- Input::KEY_MOVE_LEFT
- },
- {
- N_("Move Right"),
- Input::KEY_MOVE_RIGHT
- },
- {
- N_("Attack"),
- Input::KEY_ATTACK
- },
- {
- N_("Target & Attack"),
- Input::KEY_TARGET_ATTACK
- },
- {
- N_("Move to Target"),
- Input::KEY_MOVE_TO_TARGET
- },
- {
- N_("Change Move to Target type"),
- Input::KEY_CHANGE_MOVE_TO_TARGET
- },
- {
- N_("Move to Home location"),
- Input::KEY_MOVE_TO_HOME
- },
- {
- N_("Set home location"),
- Input::KEY_SET_HOME
- },
- {
- N_("Move to navigation point"),
- Input::KEY_MOVE_TO_POINT
- },
- {
- N_("Talk"),
- Input::KEY_TALK
- },
- {
- N_("Stop Attack"),
- Input::KEY_STOP_ATTACK
- },
- {
- N_("Untarget"),
- Input::KEY_UNTARGET
- },
- {
- N_("Target monster"),
- Input::KEY_TARGET_MONSTER
- },
- {
- N_("Target NPC"),
- Input::KEY_TARGET_NPC
- },
- {
- N_("Target Player"),
- Input::KEY_TARGET_PLAYER
- },
- {
- N_("Pickup"),
- Input::KEY_PICKUP
- },
- {
- N_("Change Pickup Type"),
- Input::KEY_CHANGE_PICKUP_TYPE
- },
- {
- N_("Hide Windows"),
- Input::KEY_HIDE_WINDOWS
- },
- {
- N_("Sit"),
- Input::KEY_SIT
- },
- {
- N_("Screenshot"),
- Input::KEY_SCREENSHOT
- },
- {
- N_("Enable/Disable Trading"),
- Input::KEY_TRADE
- },
- {
- N_("Change Map View Mode"),
- Input::KEY_PATHFIND
- },
- {
- N_("Select OK"),
- Input::KEY_OK
- },
- {
- N_("Quit"),
- Input::KEY_QUIT
- },
- {
- N_("Shortcuts Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Item Shortcuts Key"),
- Input::KEY_SHORTCUTS_KEY
- },
- {
- strprintf(N_("Item Shortcut %d"), 1),
- Input::KEY_SHORTCUT_1
- },
- {
- strprintf(N_("Item Shortcut %d"), 2),
- Input::KEY_SHORTCUT_2
- },
- {
- strprintf(N_("Item Shortcut %d"), 3),
- Input::KEY_SHORTCUT_3
- },
- {
- strprintf(N_("Item Shortcut %d"), 4),
- Input::KEY_SHORTCUT_4
- },
- {
- strprintf(N_("Item Shortcut %d"), 5),
- Input::KEY_SHORTCUT_5
- },
- {
- strprintf(N_("Item Shortcut %d"), 6),
- Input::KEY_SHORTCUT_6
- },
- {
- strprintf(N_("Item Shortcut %d"), 7),
- Input::KEY_SHORTCUT_7
- },
- {
- strprintf(N_("Item Shortcut %d"), 8),
- Input::KEY_SHORTCUT_8
- },
- {
- strprintf(N_("Item Shortcut %d"), 9),
- Input::KEY_SHORTCUT_9
- },
- {
- strprintf(N_("Item Shortcut %d"), 10),
- Input::KEY_SHORTCUT_10
- },
- {
- strprintf(N_("Item Shortcut %d"), 11),
- Input::KEY_SHORTCUT_11
- },
- {
- strprintf(N_("Item Shortcut %d"), 12),
- Input::KEY_SHORTCUT_12
- },
- {
- strprintf(N_("Item Shortcut %d"), 13),
- Input::KEY_SHORTCUT_13
- },
- {
- strprintf(N_("Item Shortcut %d"), 14),
- Input::KEY_SHORTCUT_14
- },
- {
- strprintf(N_("Item Shortcut %d"), 15),
- Input::KEY_SHORTCUT_15
- },
- {
- strprintf(N_("Item Shortcut %d"), 16),
- Input::KEY_SHORTCUT_16
- },
- {
- strprintf(N_("Item Shortcut %d"), 17),
- Input::KEY_SHORTCUT_17
- },
- {
- strprintf(N_("Item Shortcut %d"), 18),
- Input::KEY_SHORTCUT_18
- },
- {
- strprintf(N_("Item Shortcut %d"), 19),
- Input::KEY_SHORTCUT_19
- },
- {
- strprintf(N_("Item Shortcut %d"), 20),
- Input::KEY_SHORTCUT_20
- },
- {
- N_("Windows Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Help Window"),
- Input::KEY_WINDOW_HELP
- },
- {
- N_("Status Window"),
- Input::KEY_WINDOW_STATUS
- },
- {
- N_("Inventory Window"),
- Input::KEY_WINDOW_INVENTORY
- },
- {
- N_("Equipment Window"),
- Input::KEY_WINDOW_EQUIPMENT
- },
- {
- N_("Skill Window"),
- Input::KEY_WINDOW_SKILL
- },
- {
- N_("Minimap Window"),
- Input::KEY_WINDOW_MINIMAP
- },
- {
- N_("Chat Window"),
- Input::KEY_WINDOW_CHAT
- },
- {
- N_("Item Shortcut Window"),
- Input::KEY_WINDOW_SHORTCUT
- },
- {
- N_("Setup Window"),
- Input::KEY_WINDOW_SETUP
- },
- {
- N_("Debug Window"),
- Input::KEY_WINDOW_DEBUG
- },
- {
- N_("Social Window"),
- Input::KEY_WINDOW_SOCIAL
- },
- {
- N_("Emote Shortcut Window"),
- Input::KEY_WINDOW_EMOTE_SHORTCUT
- },
- {
- N_("Outfits Window"),
- Input::KEY_WINDOW_OUTFIT
- },
- {
- N_("Shop Window"),
- Input::KEY_WINDOW_SHOP
- },
- {
- N_("Quick drop Window"),
- Input::KEY_WINDOW_DROP
- },
- {
- N_("Kill Stats Window"),
- Input::KEY_WINDOW_KILLS
- },
- {
- N_("Commands Window"),
- Input::KEY_WINDOW_SPELLS
- },
- {
- N_("Bot Checker Window"),
- Input::KEY_WINDOW_BOT_CHECKER
- },
- {
- N_("Who Is Online Window"),
- Input::KEY_WINDOW_ONLINE
- },
- {
- N_("Did you know Window"),
- Input::KEY_WINDOW_DIDYOUKNOW
- },
- {
- N_("Previous Social Tab"),
- Input::KEY_PREV_SOCIAL_TAB
- },
- {
- N_("Next Social Tab"),
- Input::KEY_NEXT_SOCIAL_TAB
- },
- {
- N_("Emotes Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Smilie"),
- Input::KEY_EMOTE
- },
- {
- strprintf(N_("Emote Shortcut %d"), 1),
- Input::KEY_EMOTE_1
- },
- {
- strprintf(N_("Emote Shortcut %d"), 2),
- Input::KEY_EMOTE_2
- },
- {
- strprintf(N_("Emote Shortcut %d"), 3),
- Input::KEY_EMOTE_3
- },
- {
- strprintf(N_("Emote Shortcut %d"), 4),
- Input::KEY_EMOTE_4
- },
- {
- strprintf(N_("Emote Shortcut %d"), 5),
- Input::KEY_EMOTE_5
- },
- {
- strprintf(N_("Emote Shortcut %d"), 6),
- Input::KEY_EMOTE_6
- },
- {
- strprintf(N_("Emote Shortcut %d"), 7),
- Input::KEY_EMOTE_7
- },
- {
- strprintf(N_("Emote Shortcut %d"), 8),
- Input::KEY_EMOTE_8
- },
- {
- strprintf(N_("Emote Shortcut %d"), 9),
- Input::KEY_EMOTE_9
- },
- {
- strprintf(N_("Emote Shortcut %d"), 10),
- Input::KEY_EMOTE_10
- },
- {
- strprintf(N_("Emote Shortcut %d"), 11),
- Input::KEY_EMOTE_11
- },
- {
- strprintf(N_("Emote Shortcut %d"), 12),
- Input::KEY_EMOTE_12
- },
- {
- strprintf(N_("Emote Shortcut %d"), 13),
- Input::KEY_EMOTE_13
- },
- {
- strprintf(N_("Emote Shortcut %d"), 14),
- Input::KEY_EMOTE_14
- },
- {
- strprintf(N_("Emote Shortcut %d"), 15),
- Input::KEY_EMOTE_15
- },
- {
- strprintf(N_("Emote Shortcut %d"), 16),
- Input::KEY_EMOTE_16
- },
- {
- strprintf(N_("Emote Shortcut %d"), 17),
- Input::KEY_EMOTE_17
- },
- {
- strprintf(N_("Emote Shortcut %d"), 18),
- Input::KEY_EMOTE_18
- },
- {
- strprintf(N_("Emote Shortcut %d"), 19),
- Input::KEY_EMOTE_19
- },
- {
- strprintf(N_("Emote Shortcut %d"), 20),
- Input::KEY_EMOTE_20
- },
- {
- strprintf(N_("Emote Shortcut %d"), 21),
- Input::KEY_EMOTE_21
- },
- {
- strprintf(N_("Emote Shortcut %d"), 22),
- Input::KEY_EMOTE_22
- },
- {
- strprintf(N_("Emote Shortcut %d"), 23),
- Input::KEY_EMOTE_23
- },
- {
- strprintf(N_("Emote Shortcut %d"), 24),
- Input::KEY_EMOTE_24
- },
- {
- strprintf(N_("Emote Shortcut %d"), 25),
- Input::KEY_EMOTE_25
- },
- {
- strprintf(N_("Emote Shortcut %d"), 26),
- Input::KEY_EMOTE_26
- },
- {
- strprintf(N_("Emote Shortcut %d"), 27),
- Input::KEY_EMOTE_27
- },
- {
- strprintf(N_("Emote Shortcut %d"), 28),
- Input::KEY_EMOTE_28
- },
- {
- strprintf(N_("Emote Shortcut %d"), 29),
- Input::KEY_EMOTE_29
- },
- {
- strprintf(N_("Emote Shortcut %d"), 30),
- Input::KEY_EMOTE_30
- },
- {
- strprintf(N_("Emote Shortcut %d"), 31),
- Input::KEY_EMOTE_31
- },
- {
- strprintf(N_("Emote Shortcut %d"), 32),
- Input::KEY_EMOTE_32
- },
- {
- strprintf(N_("Emote Shortcut %d"), 33),
- Input::KEY_EMOTE_33
- },
- {
- strprintf(N_("Emote Shortcut %d"), 34),
- Input::KEY_EMOTE_34
- },
- {
- strprintf(N_("Emote Shortcut %d"), 35),
- Input::KEY_EMOTE_35
- },
- {
- strprintf(N_("Emote Shortcut %d"), 36),
- Input::KEY_EMOTE_36
- },
- {
- strprintf(N_("Emote Shortcut %d"), 37),
- Input::KEY_EMOTE_37
- },
- {
- strprintf(N_("Emote Shortcut %d"), 38),
- Input::KEY_EMOTE_38
- },
- {
- strprintf(N_("Emote Shortcut %d"), 39),
- Input::KEY_EMOTE_39
- },
- {
- strprintf(N_("Emote Shortcut %d"), 40),
- Input::KEY_EMOTE_40
- },
- {
- strprintf(N_("Emote Shortcut %d"), 41),
- Input::KEY_EMOTE_41
- },
- {
- strprintf(N_("Emote Shortcut %d"), 42),
- Input::KEY_EMOTE_42
- },
- {
- strprintf(N_("Emote Shortcut %d"), 43),
- Input::KEY_EMOTE_43
- },
- {
- strprintf(N_("Emote Shortcut %d"), 44),
- Input::KEY_EMOTE_44
- },
- {
- strprintf(N_("Emote Shortcut %d"), 45),
- Input::KEY_EMOTE_45
- },
- {
- strprintf(N_("Emote Shortcut %d"), 46),
- Input::KEY_EMOTE_46
- },
- {
- strprintf(N_("Emote Shortcut %d"), 47),
- Input::KEY_EMOTE_47
- },
- {
- strprintf(N_("Emote Shortcut %d"), 48),
- Input::KEY_EMOTE_48
- },
- {
- N_("Outfits Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Wear Outfit"),
- Input::KEY_WEAR_OUTFIT
- },
- {
- N_("Copy Outfit"),
- Input::KEY_COPY_OUTFIT
- },
- {
- N_("Copy equipped to Outfit"),
- Input::KEY_COPY_EQUIPED_OUTFIT
- },
- {
- N_("Chat Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Toggle Chat"),
- Input::KEY_TOGGLE_CHAT
- },
- {
- N_("Scroll Chat Up"),
- Input::KEY_SCROLL_CHAT_UP
- },
- {
- N_("Scroll Chat Down"),
- Input::KEY_SCROLL_CHAT_DOWN
- },
- {
- N_("Previous Chat Tab"),
- Input::KEY_PREV_CHAT_TAB
- },
- {
- N_("Next Chat Tab"),
- Input::KEY_NEXT_CHAT_TAB
- },
- {
- N_("Close current Chat Tab"),
- Input::KEY_CLOSE_CHAT_TAB
- },
- {
- N_("Previous chat line"),
- Input::KEY_CHAT_PREV_HISTORY
- },
- {
- N_("Next chat line"),
- Input::KEY_CHAT_NEXT_HISTORY
- },
- {
- N_("Chat Auto Complete"),
- Input::KEY_AUTOCOMPLETE_CHAT
- },
- {
- N_("Deactivate Chat Input"),
- Input::KEY_DEACTIVATE_CHAT
- },
- {
- N_("Other Keys"),
- Input::KEY_NO_VALUE
- },
- {
- N_("Ignore input 1"),
- Input::KEY_IGNORE_INPUT_1
- },
- {
- N_("Ignore input 2"),
- Input::KEY_IGNORE_INPUT_2
- },
- {
- N_("Direct Up"),
- Input::KEY_DIRECT_UP
- },
- {
- N_("Direct Down"),
- Input::KEY_DIRECT_DOWN
- },
- {
- N_("Direct Left"),
- Input::KEY_DIRECT_LEFT
- },
- {
- N_("Direct Right"),
- Input::KEY_DIRECT_RIGHT
- },
- {
- N_("Crazy moves"),
- Input::KEY_CRAZY_MOVES
- },
- {
- N_("Change Crazy Move mode"),
- Input::KEY_CHANGE_CRAZY_MOVES_TYPE
- },
- {
- N_("Quick Drop N Items from 0 slot"),
- Input::KEY_QUICK_DROP
- },
- {
- N_("Quick Drop N Items"),
- Input::KEY_QUICK_DROPN
- },
- {
- N_("Switch Quick Drop Counter"),
- Input::KEY_SWITCH_QUICK_DROP
- },
- {
- N_("Quick heal target or self"),
- Input::KEY_MAGIC_INMA1
- },
- {
- N_("Use #itenplz spell"),
- Input::KEY_MAGIC_ITENPLZ
- },
- {
- N_("Use magic attack"),
- Input::KEY_MAGIC_ATTACK
- },
- {
- N_("Switch magic attack"),
- Input::KEY_SWITCH_MAGIC_ATTACK
- },
- {
- N_("Switch pvp attack"),
- Input::KEY_SWITCH_PVP_ATTACK
- },
- {
- N_("Change move type"),
- Input::KEY_INVERT_DIRECTION
- },
- {
- N_("Change Attack Weapon Type"),
- Input::KEY_CHANGE_ATTACK_WEAPON_TYPE
- },
- {
- N_("Change Attack Type"),
- Input::KEY_CHANGE_ATTACK_TYPE
- },
- {
- N_("Change Follow mode"),
- Input::KEY_CHANGE_FOLLOW_MODE
- },
- {
- N_("Change Imitation mode"),
- Input::KEY_CHANGE_IMITATION_MODE
- },
- {
- N_("Disable / Enable Game modifier keys"),
- Input::KEY_DISABLE_GAME_MODIFIERS
- },
- {
- N_("On / Off audio"),
- Input::KEY_CHANGE_AUDIO
- },
- {
- N_("Enable / Disable away mode"),
- Input::KEY_AWAY
- },
- {
- N_("Emulate right click from keyboard"),
- Input::KEY_RIGHT_CLICK
- },
- {
- N_("Toggle camera mode"),
- Input::KEY_CAMERA
- },
- {
- N_("Modifier key"),
- Input::KEY_MOD
- }
-};
-
-const int keysSize = sizeof(setupActionData) / sizeof(SetupActionData);
/**
* The list model for key function list.
*
@@ -721,36 +54,64 @@ const int keysSize = sizeof(setupActionData) / sizeof(SetupActionData);
class KeyListModel : public gcn::ListModel
{
public:
+ KeyListModel() :
+ gcn::ListModel(),
+ mDataNum(0),
+ mSize(0)
+ {
+ }
+
/**
* Returns the number of elements in container.
*/
int getNumberOfElements()
- { return keysSize; }
+ { return mSize; }
/**
* Returns element from container.
*/
std::string getElementAt(int i)
- { return mKeyFunctions[i]; }
+ { return setupActionData[selectedData][i].text; }
/**
* Sets element from container.
*/
void setElementAt(int i, const std::string &caption)
- { mKeyFunctions[i] = caption; }
+ { setupActionData[selectedData][i].text = caption; }
+
+ void setSize(int size)
+ { mSize = size; }
+
+ void setDataNum(int num)
+ { mDataNum = num; }
private:
- std::string mKeyFunctions[keysSize];
+ int mDataNum;
+ int mSize;
};
Setup_Input::Setup_Input():
mKeyListModel(new KeyListModel),
mKeyList(new ListBox(mKeyListModel)),
- mKeySetting(false)
+ mKeySetting(false),
+ mActionDataSize(nullptr)
{
inputManager.setSetupInput(this);
setName(_("Input"));
+ selectedData = 0;
+ mActionDataSize = new int [7];
+
+ for (int f = 0; f < 7; f ++)
+ {
+ int cnt = 0;
+ while (!setupActionData[f][cnt].name.empty())
+ cnt ++;
+ mActionDataSize[f] = cnt;
+ }
+
+ mKeyListModel->setSize(mActionDataSize[0]);
+
refreshKeys();
mKeyList->addActionListener(this);
@@ -769,11 +130,22 @@ Setup_Input::Setup_Input():
mMakeDefaultButton = new Button(_("Default"), "makeDefault", this);
mMakeDefaultButton->addActionListener(this);
+ mTabs = new TabStrip(config.getIntValue("fontSize") + 10);
+ mTabs->addActionListener(this);
+ mTabs->setActionEventId("tabs_");
+ int k = 0;
+ while (pages[k])
+ {
+ mTabs->addButton(gettext(pages[k]), pages[k]);
+ k ++;
+ }
+
// Do the layout
LayoutHelper h(this);
ContainerPlacer place = h.getPlacer(0, 0);
- place(0, 0, scrollArea, 4, 6).setPadding(2);
+ place(0, 0, mTabs, 4);
+ place(0, 1, scrollArea, 4, 5).setPadding(2);
place(0, 6, mMakeDefaultButton);
place(2, 6, mAssignKeyButton);
place(3, 6, mUnassignKeyButton);
@@ -809,8 +181,8 @@ void Setup_Input::apply()
new OkDialog(_("Key Conflict(s) Detected."),
strprintf(_("Conflict \"%s\" and \"%s\" keys. "
"Resolve them, or gameplay may result in strange behaviour."),
- setupActionData[s1].name.c_str(),
- setupActionData[s2].name.c_str()), DIALOG_ERROR);
+ setupActionData[selectedData][s1].name.c_str(),
+ setupActionData[selectedData][s2].name.c_str()), DIALOG_ERROR);
}
keyboard.setEnabled(true);
inputManager.store();
@@ -828,14 +200,17 @@ void Setup_Input::cancel()
void Setup_Input::action(const gcn::ActionEvent &event)
{
+ logger->log("event: %s", event.getId().c_str());
+ const std::string id = event.getId();
+
if (event.getSource() == mKeyList)
{
if (!mKeySetting)
{
int i(mKeyList->getSelected());
- if (i >= 0 && i < keysSize)
+ if (i >= 0 && i < mActionDataSize[selectedData])
{
- if (setupActionData[i].actionId
+ if (setupActionData[selectedData][i].actionId
== Input::KEY_NO_VALUE)
{
mAssignKeyButton->setEnabled(false);
@@ -849,27 +224,27 @@ void Setup_Input::action(const gcn::ActionEvent &event)
}
}
}
- else if (event.getId() == "assign")
+ else if (id == "assign")
{
mKeySetting = true;
mAssignKeyButton->setEnabled(false);
keyboard.setEnabled(false);
int i(mKeyList->getSelected());
- if (i >= 0 && i < keysSize)
+ if (i >= 0 && i < mActionDataSize[selectedData])
{
- const SetupActionData &key = setupActionData[i];
+ const SetupActionData &key = setupActionData[selectedData][i];
int ik = key.actionId;
inputManager.setNewKeyIndex(ik);
mKeyListModel->setElementAt(i, std::string(
gettext(key.name.c_str())) + ": ?");
}
}
- else if (event.getId() == "unassign")
+ else if (id == "unassign")
{
int i(mKeyList->getSelected());
- if (i >= 0 && i < keysSize)
+ if (i >= 0 && i < mActionDataSize[selectedData])
{
- const SetupActionData &key = setupActionData[i];
+ const SetupActionData &key = setupActionData[selectedData][i];
int ik = key.actionId;
inputManager.setNewKeyIndex(ik);
refreshAssignedKey(mKeyList->getSelected());
@@ -877,16 +252,34 @@ void Setup_Input::action(const gcn::ActionEvent &event)
}
mAssignKeyButton->setEnabled(true);
}
- else if (event.getId() == "makeDefault")
+ else if (id == "makeDefault")
{
inputManager.makeDefault();
refreshKeys();
}
+ else if (!id.find("tabs_"))
+ {
+ int k = 0;
+ std::string str = "tabs_";
+ while (pages[k])
+ {
+ if (str + pages[k] == id)
+ break;
+ k ++;
+ }
+ if (pages[k] && str + pages[k] == id)
+ {
+ selectedData = k;
+ mKeyListModel->setSize(mActionDataSize[k]);
+ refreshKeys();
+ mKeyList->setSelected(0);
+ }
+ }
}
void Setup_Input::refreshAssignedKey(int index)
{
- const SetupActionData &key = setupActionData[index];
+ const SetupActionData &key = setupActionData[selectedData][index];
if (key.actionId == Input::KEY_NO_VALUE)
{
const std::string str = " \342\200\225\342\200\225\342\200\225"
@@ -913,9 +306,9 @@ void Setup_Input::newKeyCallback(int index)
int Setup_Input::keyToSetupData(int index)
{
- for (int i = 0; i < keysSize; i++)
+ for (int i = 0; i < mActionDataSize[selectedData]; i++)
{
- const SetupActionData &key = setupActionData[i];
+ const SetupActionData &key = setupActionData[selectedData][i];
if (key.actionId == index)
return i;
}
@@ -924,7 +317,7 @@ int Setup_Input::keyToSetupData(int index)
void Setup_Input::refreshKeys()
{
- for (int i = 0; i < keysSize; i++)
+ for (int i = 0; i < mActionDataSize[selectedData]; i++)
refreshAssignedKey(i);
}
diff --git a/src/gui/setup_input.h b/src/gui/setup_input.h
index 79c7e73ff..b2e2d64c0 100644
--- a/src/gui/setup_input.h
+++ b/src/gui/setup_input.h
@@ -33,6 +33,9 @@
#include <string>
+class TabStrip;
+struct SetupActionData;
+
class Setup_Input : public SetupTab
{
public:
@@ -81,8 +84,11 @@ class Setup_Input : public SetupTab
gcn::Button *mAssignKeyButton;
gcn::Button *mUnassignKeyButton;
gcn::Button *mMakeDefaultButton;
+ TabStrip *mTabs;
bool mKeySetting; /**< flag to check if key being set. */
+
+ int *mActionDataSize;
};
#endif
diff --git a/src/gui/setupactiondata.h b/src/gui/setupactiondata.h
new file mode 100644
index 000000000..53699110b
--- /dev/null
+++ b/src/gui/setupactiondata.h
@@ -0,0 +1,951 @@
+/*
+ * Setup action data configuration
+ * Copyright (C) 2007 Joshua Langley <joshlangley@optusnet.com.au>
+ * Copyright (C) 2009 The Mana World Development Team
+ * Copyright (C) 2009-2010 The Mana Developers
+ * Copyright (C) 2011-2012 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/>.
+ */
+
+#ifndef GUI_SETUPACTIONDATA_H
+#define GUI_SETUPACTIONDATA_H
+
+#include "utils/gettext.h"
+
+#include "debug.h"
+
+int selectedData = 0;
+
+struct SetupActionData
+{
+ const std::string name;
+ const int actionId;
+ std::string text;
+};
+
+static SetupActionData setupActionData0[] =
+{
+ {
+ N_("Move Keys"),
+ Input::KEY_NO_VALUE,
+ "",
+ },
+ {
+ N_("Move Up"),
+ Input::KEY_MOVE_UP,
+ "",
+ },
+ {
+ N_("Move Down"),
+ Input::KEY_MOVE_DOWN,
+ "",
+ },
+ {
+ N_("Move Left"),
+ Input::KEY_MOVE_LEFT,
+ "",
+ },
+ {
+ N_("Move Right"),
+ Input::KEY_MOVE_RIGHT,
+ "",
+ },
+ {
+ N_("Target and attack keys"),
+ Input::KEY_NO_VALUE,
+ "",
+ },
+ {
+ N_("Attack"),
+ Input::KEY_ATTACK,
+ "",
+ },
+ {
+ N_("Target & Attack"),
+ Input::KEY_TARGET_ATTACK,
+ "",
+ },
+ {
+ N_("Move to Target"),
+ Input::KEY_MOVE_TO_TARGET,
+ "",
+ },
+ {
+ N_("Change Move to Target type"),
+ Input::KEY_CHANGE_MOVE_TO_TARGET,
+ "",
+ },
+ {
+ N_("Move to Home location"),
+ Input::KEY_MOVE_TO_HOME,
+ "",
+ },
+ {
+ N_("Set home location"),
+ Input::KEY_SET_HOME,
+ "",
+ },
+ {
+ N_("Move to navigation point"),
+ Input::KEY_MOVE_TO_POINT,
+ "",
+ },
+ {
+ N_("Talk"),
+ Input::KEY_TALK,
+ "",
+ },
+ {
+ N_("Stop Attack"),
+ Input::KEY_STOP_ATTACK,
+ "",
+ },
+ {
+ N_("Untarget"),
+ Input::KEY_UNTARGET,
+ "",
+ },
+ {
+ N_("Target monster"),
+ Input::KEY_TARGET_MONSTER,
+ "",
+ },
+ {
+ N_("Target NPC"),
+ Input::KEY_TARGET_NPC,
+ "",
+ },
+ {
+ N_("Target Player"),
+ Input::KEY_TARGET_PLAYER,
+ "",
+ },
+ {
+ N_("Other Keys"),
+ Input::KEY_NO_VALUE,
+ "",
+ },
+ {
+ N_("Pickup"),
+ Input::KEY_PICKUP,
+ "",
+ },
+ {
+ N_("Change Pickup Type"),
+ Input::KEY_CHANGE_PICKUP_TYPE,
+ "",
+ },
+ {
+ N_("Sit"),
+ Input::KEY_SIT,
+ "",
+ },
+ {
+ N_("Screenshot"),
+ Input::KEY_SCREENSHOT,
+ "",
+ },
+ {
+ N_("Enable/Disable Trading"),
+ Input::KEY_TRADE,
+ "",
+ },
+ {
+ N_("Change Map View Mode"),
+ Input::KEY_PATHFIND,
+ "",
+ },
+ {
+ N_("Select OK"),
+ Input::KEY_OK,
+ "",
+ },
+ {
+ N_("Quit"),
+ Input::KEY_QUIT,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData setupActionData1[] =
+{
+ {
+ N_("Shortcuts modifiers keys"),
+ Input::KEY_NO_VALUE,
+ ""
+ },
+ {
+ N_("Item Shortcuts Key"),
+ Input::KEY_SHORTCUTS_KEY,
+ "",
+ },
+ {
+ N_("Shortcuts keys"),
+ Input::KEY_NO_VALUE,
+ ""
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 1),
+ Input::KEY_SHORTCUT_1,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 2),
+ Input::KEY_SHORTCUT_2,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 3),
+ Input::KEY_SHORTCUT_3,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 4),
+ Input::KEY_SHORTCUT_4,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 5),
+ Input::KEY_SHORTCUT_5,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 6),
+ Input::KEY_SHORTCUT_6,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 7),
+ Input::KEY_SHORTCUT_7,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 8),
+ Input::KEY_SHORTCUT_8,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 9),
+ Input::KEY_SHORTCUT_9,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 10),
+ Input::KEY_SHORTCUT_10,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 11),
+ Input::KEY_SHORTCUT_11,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 12),
+ Input::KEY_SHORTCUT_12,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 13),
+ Input::KEY_SHORTCUT_13,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 14),
+ Input::KEY_SHORTCUT_14,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 15),
+ Input::KEY_SHORTCUT_15,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 16),
+ Input::KEY_SHORTCUT_16,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 17),
+ Input::KEY_SHORTCUT_17,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 18),
+ Input::KEY_SHORTCUT_18,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 19),
+ Input::KEY_SHORTCUT_19,
+ "",
+ },
+ {
+ strprintf(N_("Item Shortcut %d"), 20),
+ Input::KEY_SHORTCUT_20,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData setupActionData2[] =
+{
+ {
+ N_("Hide Windows"),
+ Input::KEY_HIDE_WINDOWS,
+ "",
+ },
+ {
+ N_("Help Window"),
+ Input::KEY_WINDOW_HELP,
+ "",
+ },
+ {
+ N_("Status Window"),
+ Input::KEY_WINDOW_STATUS,
+ "",
+ },
+ {
+ N_("Inventory Window"),
+ Input::KEY_WINDOW_INVENTORY,
+ "",
+ },
+ {
+ N_("Equipment Window"),
+ Input::KEY_WINDOW_EQUIPMENT,
+ "",
+ },
+ {
+ N_("Skill Window"),
+ Input::KEY_WINDOW_SKILL,
+ "",
+ },
+ {
+ N_("Minimap Window"),
+ Input::KEY_WINDOW_MINIMAP,
+ "",
+ },
+ {
+ N_("Chat Window"),
+ Input::KEY_WINDOW_CHAT,
+ "",
+ },
+ {
+ N_("Item Shortcut Window"),
+ Input::KEY_WINDOW_SHORTCUT,
+ "",
+ },
+ {
+ N_("Setup Window"),
+ Input::KEY_WINDOW_SETUP,
+ "",
+ },
+ {
+ N_("Debug Window"),
+ Input::KEY_WINDOW_DEBUG,
+ "",
+ },
+ {
+ N_("Social Window"),
+ Input::KEY_WINDOW_SOCIAL,
+ "",
+ },
+ {
+ N_("Emote Shortcut Window"),
+ Input::KEY_WINDOW_EMOTE_SHORTCUT,
+ "",
+ },
+ {
+ N_("Outfits Window"),
+ Input::KEY_WINDOW_OUTFIT,
+ "",
+ },
+ {
+ N_("Shop Window"),
+ Input::KEY_WINDOW_SHOP,
+ "",
+ },
+ {
+ N_("Quick drop Window"),
+ Input::KEY_WINDOW_DROP,
+ "",
+ },
+ {
+ N_("Kill Stats Window"),
+ Input::KEY_WINDOW_KILLS,
+ "",
+ },
+ {
+ N_("Commands Window"),
+ Input::KEY_WINDOW_SPELLS,
+ "",
+ },
+ {
+ N_("Bot Checker Window"),
+ Input::KEY_WINDOW_BOT_CHECKER,
+ "",
+ },
+ {
+ N_("Who Is Online Window"),
+ Input::KEY_WINDOW_ONLINE,
+ "",
+ },
+ {
+ N_("Did you know Window"),
+ Input::KEY_WINDOW_DIDYOUKNOW,
+ "",
+ },
+ {
+ N_("Previous Social Tab"),
+ Input::KEY_PREV_SOCIAL_TAB,
+ "",
+ },
+ {
+ N_("Next Social Tab"),
+ Input::KEY_NEXT_SOCIAL_TAB,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData setupActionData3[] =
+{
+ {
+ N_("Emote modifiers keys"),
+ Input::KEY_NO_VALUE,
+ ""
+ },
+ {
+ N_("Emote modifier key"),
+ Input::KEY_EMOTE,
+ "",
+ },
+ {
+ N_("Emote shortcuts"),
+ Input::KEY_NO_VALUE,
+ ""
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 1),
+ Input::KEY_EMOTE_1,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 2),
+ Input::KEY_EMOTE_2,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 3),
+ Input::KEY_EMOTE_3,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 4),
+ Input::KEY_EMOTE_4,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 5),
+ Input::KEY_EMOTE_5,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 6),
+ Input::KEY_EMOTE_6,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 7),
+ Input::KEY_EMOTE_7,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 8),
+ Input::KEY_EMOTE_8,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 9),
+ Input::KEY_EMOTE_9,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 10),
+ Input::KEY_EMOTE_10,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 11),
+ Input::KEY_EMOTE_11,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 12),
+ Input::KEY_EMOTE_12,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 13),
+ Input::KEY_EMOTE_13,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 14),
+ Input::KEY_EMOTE_14,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 15),
+ Input::KEY_EMOTE_15,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 16),
+ Input::KEY_EMOTE_16,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 17),
+ Input::KEY_EMOTE_17,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 18),
+ Input::KEY_EMOTE_18,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 19),
+ Input::KEY_EMOTE_19,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 20),
+ Input::KEY_EMOTE_20,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 21),
+ Input::KEY_EMOTE_21,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 22),
+ Input::KEY_EMOTE_22,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 23),
+ Input::KEY_EMOTE_23,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 24),
+ Input::KEY_EMOTE_24,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 25),
+ Input::KEY_EMOTE_25,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 26),
+ Input::KEY_EMOTE_26,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 27),
+ Input::KEY_EMOTE_27,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 28),
+ Input::KEY_EMOTE_28,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 29),
+ Input::KEY_EMOTE_29,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 30),
+ Input::KEY_EMOTE_30,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 31),
+ Input::KEY_EMOTE_31,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 32),
+ Input::KEY_EMOTE_32,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 33),
+ Input::KEY_EMOTE_33,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 34),
+ Input::KEY_EMOTE_34,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 35),
+ Input::KEY_EMOTE_35,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 36),
+ Input::KEY_EMOTE_36,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 37),
+ Input::KEY_EMOTE_37,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 38),
+ Input::KEY_EMOTE_38,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 39),
+ Input::KEY_EMOTE_39,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 40),
+ Input::KEY_EMOTE_40,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 41),
+ Input::KEY_EMOTE_41,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 42),
+ Input::KEY_EMOTE_42,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 43),
+ Input::KEY_EMOTE_43,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 44),
+ Input::KEY_EMOTE_44,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 45),
+ Input::KEY_EMOTE_45,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 46),
+ Input::KEY_EMOTE_46,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 47),
+ Input::KEY_EMOTE_47,
+ "",
+ },
+ {
+ strprintf(N_("Emote Shortcut %d"), 48),
+ Input::KEY_EMOTE_48,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData setupActionData4[] =
+{
+ {
+ N_("Wear Outfit"),
+ Input::KEY_WEAR_OUTFIT,
+ "",
+ },
+ {
+ N_("Copy Outfit"),
+ Input::KEY_COPY_OUTFIT,
+ "",
+ },
+ {
+ N_("Copy equipped to Outfit"),
+ Input::KEY_COPY_EQUIPED_OUTFIT,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData setupActionData5[] =
+{
+ {
+ N_("Toggle Chat"),
+ Input::KEY_TOGGLE_CHAT,
+ "",
+ },
+ {
+ N_("Scroll Chat Up"),
+ Input::KEY_SCROLL_CHAT_UP,
+ "",
+ },
+ {
+ N_("Scroll Chat Down"),
+ Input::KEY_SCROLL_CHAT_DOWN,
+ "",
+ },
+ {
+ N_("Previous Chat Tab"),
+ Input::KEY_PREV_CHAT_TAB,
+ "",
+ },
+ {
+ N_("Next Chat Tab"),
+ Input::KEY_NEXT_CHAT_TAB,
+ "",
+ },
+ {
+ N_("Close current Chat Tab"),
+ Input::KEY_CLOSE_CHAT_TAB,
+ "",
+ },
+ {
+ N_("Previous chat line"),
+ Input::KEY_CHAT_PREV_HISTORY,
+ "",
+ },
+ {
+ N_("Next chat line"),
+ Input::KEY_CHAT_NEXT_HISTORY,
+ "",
+ },
+ {
+ N_("Chat Auto Complete"),
+ Input::KEY_AUTOCOMPLETE_CHAT,
+ "",
+ },
+ {
+ N_("Deactivate Chat Input"),
+ Input::KEY_DEACTIVATE_CHAT,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData setupActionData6[] =
+{
+ {
+ N_("Ignore input 1"),
+ Input::KEY_IGNORE_INPUT_1,
+ "",
+ },
+ {
+ N_("Ignore input 2"),
+ Input::KEY_IGNORE_INPUT_2,
+ "",
+ },
+ {
+ N_("Direct Up"),
+ Input::KEY_DIRECT_UP,
+ "",
+ },
+ {
+ N_("Direct Down"),
+ Input::KEY_DIRECT_DOWN,
+ "",
+ },
+ {
+ N_("Direct Left"),
+ Input::KEY_DIRECT_LEFT,
+ "",
+ },
+ {
+ N_("Direct Right"),
+ Input::KEY_DIRECT_RIGHT,
+ "",
+ },
+ {
+ N_("Crazy moves"),
+ Input::KEY_CRAZY_MOVES,
+ "",
+ },
+ {
+ N_("Change Crazy Move mode"),
+ Input::KEY_CHANGE_CRAZY_MOVES_TYPE,
+ "",
+ },
+ {
+ N_("Quick Drop N Items from 0 slot"),
+ Input::KEY_QUICK_DROP,
+ "",
+ },
+ {
+ N_("Quick Drop N Items"),
+ Input::KEY_QUICK_DROPN,
+ "",
+ },
+ {
+ N_("Switch Quick Drop Counter"),
+ Input::KEY_SWITCH_QUICK_DROP,
+ "",
+ },
+ {
+ N_("Quick heal target or self"),
+ Input::KEY_MAGIC_INMA1,
+ "",
+ },
+ {
+ N_("Use #itenplz spell"),
+ Input::KEY_MAGIC_ITENPLZ,
+ "",
+ },
+ {
+ N_("Use magic attack"),
+ Input::KEY_MAGIC_ATTACK,
+ "",
+ },
+ {
+ N_("Switch magic attack"),
+ Input::KEY_SWITCH_MAGIC_ATTACK,
+ "",
+ },
+ {
+ N_("Switch pvp attack"),
+ Input::KEY_SWITCH_PVP_ATTACK,
+ "",
+ },
+ {
+ N_("Change move type"),
+ Input::KEY_INVERT_DIRECTION,
+ "",
+ },
+ {
+ N_("Change Attack Weapon Type"),
+ Input::KEY_CHANGE_ATTACK_WEAPON_TYPE,
+ "",
+ },
+ {
+ N_("Change Attack Type"),
+ Input::KEY_CHANGE_ATTACK_TYPE,
+ "",
+ },
+ {
+ N_("Change Follow mode"),
+ Input::KEY_CHANGE_FOLLOW_MODE,
+ "",
+ },
+ {
+ N_("Change Imitation mode"),
+ Input::KEY_CHANGE_IMITATION_MODE,
+ "",
+ },
+ {
+ N_("Disable / Enable Game modifier keys"),
+ Input::KEY_DISABLE_GAME_MODIFIERS,
+ "",
+ },
+ {
+ N_("On / Off audio"),
+ Input::KEY_CHANGE_AUDIO,
+ "",
+ },
+ {
+ N_("Enable / Disable away mode"),
+ Input::KEY_AWAY,
+ "",
+ },
+ {
+ N_("Emulate right click from keyboard"),
+ Input::KEY_RIGHT_CLICK,
+ "",
+ },
+ {
+ N_("Toggle camera mode"),
+ Input::KEY_CAMERA,
+ "",
+ },
+ {
+ N_("Modifier key"),
+ Input::KEY_MOD,
+ "",
+ },
+ {
+ "",
+ Input::KEY_NO_VALUE,
+ ""
+ }
+};
+
+static SetupActionData *setupActionData[] =
+{
+ setupActionData0,
+ setupActionData1,
+ setupActionData2,
+ setupActionData3,
+ setupActionData4,
+ setupActionData5,
+ setupActionData6
+};
+
+static const char *pages[] =
+{
+ N_("Basic"),
+ N_("Shortcuts"),
+ N_("Windows"),
+ N_("Emotes"),
+ N_("Outfits"),
+ N_("Chat"),
+ N_("Other"),
+ nullptr
+};
+
+#endif
diff --git a/src/gui/widgets/tabstrip.cpp b/src/gui/widgets/tabstrip.cpp
index 6dcf02008..6b3f42fe9 100644
--- a/src/gui/widgets/tabstrip.cpp
+++ b/src/gui/widgets/tabstrip.cpp
@@ -32,6 +32,11 @@ TabStrip::TabStrip(std::string group, int height, int spacing) :
{
}
+TabStrip::TabStrip(int height, int spacing) :
+ WidgetGroup("", height, spacing)
+{
+}
+
gcn::Widget *TabStrip::createWidget(std::string text)
{
Button *widget = new Button();
diff --git a/src/gui/widgets/tabstrip.h b/src/gui/widgets/tabstrip.h
index 588833606..078845b39 100644
--- a/src/gui/widgets/tabstrip.h
+++ b/src/gui/widgets/tabstrip.h
@@ -29,7 +29,9 @@
class TabStrip : public WidgetGroup
{
public:
- TabStrip(std::string group, int height, int spacing);
+ TabStrip(std::string group, int height, int spacing = 0);
+
+ TabStrip(int height, int spacing = 0);
gcn::Widget *createWidget(std::string name);