From d5eb424dcd214b4646a960e04b9271e70b096856 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 3 Jul 2011 17:23:05 +0300 Subject: Add separator field to setup settings tabs. --- src/gui/setup_chat.cpp | 44 ++++++++++---- src/gui/setup_other.cpp | 114 ++++++++++++++++++++++--------------- src/gui/setupitem.cpp | 54 ++++++++++++++++++ src/gui/setupitem.h | 26 ++++++++- src/gui/widgets/setuptabscroll.cpp | 16 ++++-- 5 files changed, 188 insertions(+), 66 deletions(-) (limited to 'src') diff --git a/src/gui/setup_chat.cpp b/src/gui/setup_chat.cpp index 87425b46c..7db61542a 100644 --- a/src/gui/setup_chat.cpp +++ b/src/gui/setup_chat.cpp @@ -52,38 +52,55 @@ Setup_Chat::Setup_Chat() ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + new SetupItemLabel(_("Colors"), "", this); + new SetupItemCheckBox(_("Remove colors from received chat messages"), "", "removeColors", this, "removeColorsEvent"); - new SetupItemCheckBox(_("Log magic messages in debug tab"), "", - "showMagicInDebug", this, "showMagicInDebugEvent"); + new SetupItemCheckBox(_("Show chat colors list"), "", + "showChatColorsList", this, "showChatColorsListEvent"); + + + new SetupItemLabel(_("Commands"), "", this); new SetupItemCheckBox(_("Allow magic and GM commands in all chat tabs"), "", "allowCommandsInChatTabs", this, "allowCommandsInChatTabsEvent"); - new SetupItemCheckBox(_("Show server messages in debug tab"), "", - "serverMsgInDebug", this, "serverMsgInDebugEvent"); - new SetupItemCheckBox(_("Show chat colors list"), "", - "showChatColorsList", this, "showChatColorsListEvent"); + new SetupItemLabel(_("Limits"), "", this); new SetupItemIntTextField(_("Limit max chars in chat line"), "", "chatMaxCharLimit", this, "chatMaxCharLimitEvent", 0, 500); + new SetupItemIntTextField(_("Limit max lines in chat"), "", + "chatMaxLinesLimit", this, "chatMaxLinesLimitEvent", 0, 500); + + + new SetupItemLabel(_("Logs"), "", this); + new SetupItemCheckBox(_("Enable chat Log"), "", "enableChatLog", this, "enableChatLogEvent"); - new SetupItemIntTextField(_("Limit max lines in chat"), "", - "chatMaxLinesLimit", this, "chatMaxLinesLimitEvent", 0, 500); + new SetupItemCheckBox(_("Show chat history"), "", + "showChatHistory", this, "showChatHistoryEvent"); - new SetupItemCheckBox(_("Enable trade tab"), "", - "enableTradeTab", this, "enableTradeTabEvent"); + + new SetupItemLabel(_("Messages"), "", this); new SetupItemCheckBox(_("Hide shop messages"), "", "hideShopMessages", this, "hideShopMessagesEvent"); - new SetupItemCheckBox(_("Show chat history"), "", - "showChatHistory", this, "showChatHistoryEvent"); + + new SetupItemLabel(_("Tabs"), "", this); + + new SetupItemCheckBox(_("Log magic messages in debug tab"), "", + "showMagicInDebug", this, "showMagicInDebugEvent"); + + new SetupItemCheckBox(_("Show server messages in debug tab"), "", + "serverMsgInDebug", this, "serverMsgInDebugEvent"); + + new SetupItemCheckBox(_("Enable trade tab"), "", + "enableTradeTab", this, "enableTradeTabEvent"); new SetupItemCheckBox(_("Enable battle tab"), "", "enableBattleTab", this, "enableBattleTabEvent"); @@ -94,6 +111,9 @@ Setup_Chat::Setup_Chat() new SetupItemCheckBox(_("Resize chat tabs if need"), "", "hideChatInput", this, "hideChatInputEvent"); + + new SetupItemLabel(_("Time"), "", this); + new SetupItemCheckBox(_("Use local time"), "", "useLocalTime", this, "useLocalTimeEvent"); diff --git a/src/gui/setup_other.cpp b/src/gui/setup_other.cpp index 1f5b254a1..0cad07bc1 100644 --- a/src/gui/setup_other.cpp +++ b/src/gui/setup_other.cpp @@ -43,100 +43,119 @@ Setup_Other::Setup_Other() ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); + new SetupItemLabel(_("Monsters"), "", this); + new SetupItemCheckBox(_("Show damage inflicted to monsters"), "", "showMonstersTakedDamage", this, "showMonstersTakedDamageEvent"); - new SetupItemCheckBox(_("Enable server side attack"), "", - "serverAttack", this, "serverAttackEvent"); - new SetupItemCheckBox(_("Auto target only reachable monsters"), "", "targetOnlyReachable", this, "targetOnlyReachableEvent"); - new SetupItemCheckBox(_("Auto fix position"), "", - "autofixPos", this, "autofixPosEvent"); + new SetupItemCheckBox(_("Highlight monster attack range"), "", + "highlightMonsterAttackRange", this, + "highlightMonsterAttackRangeEvent"); + + new SetupItemCheckBox(_("Show monster hp bar"), "", + "showMobHP", this, "showMobHPEvent"); + + new SetupItemCheckBox(_("Cycle monster targets"), "", + "cycleMonsters", this, "cycleMonstersEvent"); + + + new SetupItemLabel(_("Map"), "", this); + + new SetupItemCheckBox(_("Show warps particles"), "", + "warpParticle", this, "warpParticleEvent"); new SetupItemCheckBox(_("Highlight map portals"), "", "highlightMapPortals", this, "highlightMapPortalsEvent"); - new SetupItemCheckBox(_("Attack while moving"), "", - "attackMoving", this, "attackMovingEvent"); - new SetupItemCheckBox(_("Highlight floor items"), "", "floorItemsHighlight", this, "floorItemsHighlightEvent"); - new SetupItemCheckBox(_("Enable quick stats"), "", - "quickStats", this, "quickStatsEvent"); - new SetupItemCheckBox(_("Highlight player attack range"), "", "highlightAttackRange", this, "highlightAttackRangeEvent"); - new SetupItemCheckBox(_("Show warps particles"), "", - "warpParticle", this, "warpParticleEvent"); + new SetupItemCheckBox(_("Show extended minimaps"), "", + "showExtMinimaps", this, "showExtMinimapsEvent"); - new SetupItemCheckBox(_("Highlight monster attack range"), "", - "highlightMonsterAttackRange", this, - "highlightMonsterAttackRangeEvent"); + new SetupItemCheckBox(_("Draw path"), "", "drawPath", + this, "drawPathEvent"); - new SetupItemCheckBox(_("Accept sell/buy requests"), "", - "autoShop", this, "autoShopEvent"); + new SetupItemCheckBox(_("Draw hotkeys on map"), "", "drawHotKeys", + this, "drawHotKeysEvent"); - new SetupItemCheckBox(_("Cycle player targets"), "", - "cyclePlayers", this, "cyclePlayersEvent"); - new SetupItemCheckBox(_("Show monster hp bar"), "", - "showMobHP", this, "showMobHPEvent"); + new SetupItemLabel(_("Moving"), "", this); - new SetupItemCheckBox(_("Cycle monster targets"), "", - "cycleMonsters", this, "cycleMonstersEvent"); + new SetupItemCheckBox(_("Auto fix position"), "", + "autofixPos", this, "autofixPosEvent"); + + new SetupItemCheckBox(_("Attack while moving"), "", + "attackMoving", this, "attackMovingEvent"); + + new SetupItemCheckBox(_("Sync player move"), "", "syncPlayerMove", + this, "syncPlayerMoveEvent"); + + new SetupItemTextField(_("Crazy move A program"), "", + "crazyMoveProgram", this, "crazyMoveProgramEvent"); + + + new SetupItemLabel(_("Player"), "", this); new SetupItemCheckBox(_("Show own hp bar"), "", "showOwnHP", this, "showOwnHPEvent"); - new SetupItemCheckBox(_("Enable bot checker"), "", - "enableBotCheker", this, "enableBotChekerEvent"); + new SetupItemCheckBox(_("Enable quick stats"), "", + "quickStats", this, "quickStatsEvent"); + + new SetupItemCheckBox(_("Cycle player targets"), "", + "cyclePlayers", this, "cyclePlayersEvent"); new SetupItemCheckBox(_("Show job exp messages"), "", "showJobExp", this, "showJobExpEvent"); - - new SetupItemTextField(_("Crazy move A program"), "", - "crazyMoveProgram", this, "crazyMoveProgramEvent"); - new SetupItemCheckBox(_("Show players popups"), "", "showBeingPopup", this, "showBeingPopupEvent"); - new SetupItemCheckBox(_("Show extended minimaps"), "", - "showExtMinimaps", this, "showExtMinimapsEvent"); - new SetupItemTextField(_("Afk message"), "", "afkMessage", this, "afkMessageEvent"); + new SetupItemCheckBox(_("Show job"), "", "showJob", + this, "showJobEvent", false); + new SetupItemCheckBox(_("Enable attack filter"), "", "enableAttackFilter", this, "enableAttackFilterEvent"); - new SetupItemCheckBox(_("Enable shop mode"), "", - "tradebot", this, "tradebotEvent"); - new SetupItemCheckBox(_("Enable buggy servers protection"), "", - "enableBuggyServers", this, "enableBuggyServersEvent", false); + new SetupItemLabel(_("Shop"), "", this); - new SetupItemCheckBox(_("Enable debug log"), "", - "debugLog", this, "debugLogEvent"); + new SetupItemCheckBox(_("Accept sell/buy requests"), "", + "autoShop", this, "autoShopEvent"); - new SetupItemCheckBox(_("Draw path"), "", "drawPath", - this, "drawPathEvent"); + new SetupItemCheckBox(_("Enable shop mode"), "", + "tradebot", this, "tradebotEvent"); - new SetupItemCheckBox(_("Show job"), "", "showJob", - this, "showJobEvent", false); + + new SetupItemLabel(_("NPC"), "", this); new SetupItemCheckBox(_("Log NPC dialogue"), "", "logNpcInGui", this, "logNpcInGuiEvent"); - new SetupItemCheckBox(_("Draw hotkeys on map"), "", "drawHotKeys", - this, "drawHotKeysEvent"); - new SetupItemCheckBox(_("Sync player move"), "", "syncPlayerMove", - this, "syncPlayerMoveEvent"); + new SetupItemLabel(_("Other"), "", this); + + new SetupItemCheckBox(_("Enable server side attack"), "", + "serverAttack", this, "serverAttackEvent"); + + new SetupItemCheckBox(_("Enable bot checker"), "", + "enableBotCheker", this, "enableBotChekerEvent"); + + new SetupItemCheckBox(_("Enable buggy servers protection"), "", + "enableBuggyServers", this, "enableBuggyServersEvent", false); + + new SetupItemCheckBox(_("Enable debug log"), "", + "debugLog", this, "debugLogEvent"); new SetupItemCheckBox(_("Low traffic mode"), "", "lowTraffic", this, "lowTrafficEvent"); @@ -144,6 +163,7 @@ Setup_Other::Setup_Other() new SetupItemCheckBox(_("Hide shield sprite"), "", "hideShield", this, "hideShieldEvent"); + setDimension(gcn::Rectangle(0, 0, 550, 350)); } diff --git a/src/gui/setupitem.cpp b/src/gui/setupitem.cpp index ecd6a9407..e41e9357d 100644 --- a/src/gui/setupitem.cpp +++ b/src/gui/setupitem.cpp @@ -111,6 +111,8 @@ void SetupItem::load() case VINT: mValue = toString(cfg->getIntValue(mKeyName)); break; + case VNONE: + break; } } } @@ -451,3 +453,55 @@ void SetupItemIntTextField::apply(std::string eventName) fromWidget(); save(); } + +SetupItemLabel::SetupItemLabel(std::string text, std::string description, + SetupTabScroll *parent, bool separator) : + SetupItem(text, description, "", parent, "", "", true), + mLabel(0), + mIsSeparator(separator) +{ + mValueType = VNONE; + createControls(); +} + +SetupItemLabel::~SetupItemLabel() +{ + mWidget = 0; + mLabel = 0; +} + +void SetupItemLabel::createControls() +{ + if (mIsSeparator) + { + const std::string str = " \342\200\225\342\200\225\342\200\225" + "\342\200\225\342\200\225 "; + mLabel = new Label(str + mText + str); + } + else + { + mLabel = new Label(mText); + } + + mWidget = mLabel; + mParent->getContainer()->add(mWidget); + mParent->addControl(this); + mParent->addActionListener(this); + mWidget->addActionListener(this); +} + +void SetupItemLabel::fromWidget() +{ +} + +void SetupItemLabel::toWidget() +{ +} + +void SetupItemLabel::action(const gcn::ActionEvent &event) +{ +} + +void SetupItemLabel::apply(std::string eventName) +{ +} diff --git a/src/gui/setupitem.h b/src/gui/setupitem.h index 81f85b0da..33fcbbf78 100644 --- a/src/gui/setupitem.h +++ b/src/gui/setupitem.h @@ -55,7 +55,8 @@ class SetupItem : public gcn::ActionListener { VBOOL = 0, VSTR, - VINT + VINT, + VNONE }; SetupItem(std::string text, std::string description, @@ -217,4 +218,27 @@ class SetupItemIntTextField : public SetupItem EditDialog *mEditDialog; }; +class SetupItemLabel : public SetupItem +{ + public: + SetupItemLabel(std::string text, std::string description, + SetupTabScroll *parent, bool separator = true); + + ~SetupItemLabel(); + + void createControls(); + + void fromWidget(); + + void toWidget(); + + void action(const gcn::ActionEvent &event); + + void apply(std::string eventName); + + protected: + Label *mLabel; + bool mIsSeparator; +}; + #endif diff --git a/src/gui/widgets/setuptabscroll.cpp b/src/gui/widgets/setuptabscroll.cpp index c3fd4dee8..805c0c8c7 100644 --- a/src/gui/widgets/setuptabscroll.cpp +++ b/src/gui/widgets/setuptabscroll.cpp @@ -61,14 +61,18 @@ SetupTabScroll::~SetupTabScroll() void SetupTabScroll::addControl(SetupItem *widget) { - std::map::iterator iter - = mItems.find(widget->getActionEventId()); - if (iter != mItems.end()) + const std::string actionId = widget->getActionEventId(); + if (!actionId.empty()) { - delete (*iter).second; - mItems.erase(iter); + std::map::iterator iter + = mItems.find(actionId); + if (iter != mItems.end()) + { + delete (*iter).second; + mItems.erase(iter); + } + mItems[widget->getActionEventId()] = widget; } - mItems[widget->getActionEventId()] = widget; mAllItems.insert(widget); } -- cgit v1.2.3-60-g2f50