/* * The ManaPlus Client * Copyright (C) 2009 The Mana World Development Team * Copyright (C) 2009-2010 Andrei Karas * Copyright (C) 2011-2020 The ManaPlus Developers * Copyright (C) 2020-2023 The ManaVerse 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 . */ #include "gui/widgets/tabs/setup_players.h" #include "configuration.h" #include "settings.h" #include "gui/models/namesmodel.h" #include "gui/widgets/containerplacer.h" #include "gui/widgets/layouthelper.h" #include "gui/widgets/scrollarea.h" #include "gui/widgets/setupitem.h" #include "utils/delete2.h" #include "utils/gettext.h" #include "debug.h" static const int badgesListSize = 4; static const char *const badgesList[] = { // TRANSLATORS: screen badges type N_("hide"), // TRANSLATORS: screen badges type N_("show at top"), // TRANSLATORS: screen badges type N_("show at right"), // TRANSLATORS: screen badges type N_("show at bottom"), }; static const int visibleNamesListSize = 3; static const char *const visibleNamesList[] = { // TRANSLATORS: visible name type N_("hide"), // TRANSLATORS: visible name type N_("show"), // TRANSLATORS: visible name type N_("show on selection") }; static const int topDownListSize = 2; static const char *const topDownList[] = { // TRANSLATORS: show on top or down N_("top"), // TRANSLATORS: show on top or down N_("bottom") }; Setup_Players::Setup_Players(const Widget2 *const widget) : SetupTabScroll(widget), mBadgesList(new NamesModel), mVisibleNamesList(new NamesModel), mVisibleNamesPosList(new NamesModel) { // TRANSLATORS: settings tab name setName(_("Players")); LayoutHelper h(this); ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); // TRANSLATORS: settings option new SetupItemCheckBox(_("Show gender"), "", "showgender", this, "showgenderEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Show level"), "", "showlevel", this, "showlevelEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Show own name"), "", "showownname", this, "showownnameEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable extended mouse targeting"), "", "extMouseTargeting", this, "extMouseTargetingEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Target dead players"), "", "targetDeadPlayers", this, "targetDeadPlayersEvent", MainConfig_true); mVisibleNamesList->fillFromArray(&visibleNamesList[0], visibleNamesListSize); // TRANSLATORS: settings option new SetupItemDropDown(_("Show player names"), "", "visiblenames", this, "visiblenamesEvent", mVisibleNamesList, 150, MainConfig_true); mVisibleNamesPosList->fillFromArray(&topDownList[0], topDownListSize); // TRANSLATORS: settings option new SetupItemDropDown(_("Show player names at"), "", "visiblenamespos", this, "visiblenamesposEvent", mVisibleNamesPosList, 150, MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Auto move names"), "", "moveNames", this, "moveNamesEvent", MainConfig_true); mBadgesList->fillFromArray(&badgesList[0], badgesListSize); // TRANSLATORS: settings option new SetupItemDropDown(_("Badges"), "", "showBadges", this, "showBadgesEvent", mBadgesList, 150, MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Secure trades"), "", "securetrades", this, "securetradesEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemTextField(_("Unsecure chars in names"), "", "unsecureChars", this, "unsecureCharsEvent", MainConfig_true, UseBase64_false); // TRANSLATORS: settings option new SetupItemCheckBox(_("Show statuses"), "", "showPlayersStatus", this, "showPlayersStatusEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Show ip addresses on screenshots"), "", "showip", this, "showipEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Allow self heal with mouse click"), "", "selfMouseHeal", this, "selfMouseHealEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Group friends in who is online window"), "", "groupFriends", this, "groupFriendsEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Hide erased players nicks"), "", "hideErased", this, "hideErasedEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Collect players id and seen log"), "", "enableIdCollecting", this, "enableIdCollectingEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Correct diagonal speed in players moving"), "", "useDiagonalSpeed", this, "useDiagonalSpeedEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Log players actions (for GM)"), "", "logPlayerActions", this, "logPlayerActionsEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Create screenshots for each complete trades"), "", "tradescreenshot", this, "tradescreenshotEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Emulate right mouse button by long mouse click" " (useful for touch interfaces)"), "", "longmouseclick", this, "longmouseclickEvent", MainConfig_true); // TRANSLATORS: settings option new SetupItemCheckBox(_("Enable remote commands"), "", "enableRemoteCommands", this, "enableRemoteCommandsEvent", "1", MainConfig_false); // TRANSLATORS: settings option new SetupItemCheckBox(_("Allow move character by mouse"), "", "allowMoveByMouse", this, "allowMoveByMouseEvent", MainConfig_true); setDimension(Rect(0, 0, 550, 350)); } Setup_Players::~Setup_Players() { delete2(mBadgesList) delete2(mVisibleNamesList) delete2(mVisibleNamesPosList) } void Setup_Players::externalUpdated() { reread("enableRemoteCommands"); } void Setup_Players::apply() { SetupTabScroll::apply(); settings.enableRemoteCommands = (serverConfig.getValue( "enableRemoteCommands", 1) != 0); }