1 /* 2 * The ManaPlus Client 3 * Copyright (C) 2009 The Mana World Development Team 4 * Copyright (C) 2011-2019 The ManaPlus Developers 5 * Copyright (C) 2009-2021 Andrei Karas 6 * 7 * This file is part of The ManaPlus Client. 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 #ifndef GUI_WIDGETS_TABS_SETUP_THEME_H 24 #define GUI_WIDGETS_TABS_SETUP_THEME_H 25 26 #include "gui/widgets/tabs/setuptab.h" 27 28 class Button; 29 class DropDown; 30 class FontsModel; 31 class FontSizeChoiceListModel; 32 class Label; 33 class LangListModel; 34 class ThemesModel; 35 36 class Setup_Theme final : public SetupTab 37 { 38 public: 39 explicit Setup_Theme(const Widget2 *const widget); 40 41 A_DELETE_COPY(Setup_Theme) 42 43 ~Setup_Theme() override final; 44 45 void apply() override final; 46 47 void cancel() override final; 48 49 void action(const ActionEvent &event) override final; 50 51 void updateInfo(); 52 53 private: 54 Label *mThemeLabel; 55 ThemesModel *mThemesModel A_NONNULLPOINTER; 56 DropDown *mThemeDropDown; 57 std::string mTheme; 58 ThemeInfo *mInfo; 59 60 FontsModel *mFontsModel A_NONNULLPOINTER; 61 Label *mFontLabel A_NONNULLPOINTER; 62 DropDown *mFontDropDown A_NONNULLPOINTER; 63 std::string mFont; 64 65 LangListModel *mLangListModel A_NONNULLPOINTER; 66 67 Label *mLangLabel A_NONNULLPOINTER; 68 DropDown *mLangDropDown A_NONNULLPOINTER; 69 std::string mLang; 70 71 Label *mBoldFontLabel A_NONNULLPOINTER; 72 DropDown *mBoldFontDropDown A_NONNULLPOINTER; 73 std::string mBoldFont; 74 75 Label *mParticleFontLabel A_NONNULLPOINTER; 76 DropDown *mParticleFontDropDown A_NONNULLPOINTER; 77 std::string mParticleFont; 78 79 Label *mHelpFontLabel A_NONNULLPOINTER; 80 DropDown *mHelpFontDropDown A_NONNULLPOINTER; 81 std::string mHelpFont; 82 83 Label *mSecureFontLabel A_NONNULLPOINTER; 84 DropDown *mSecureFontDropDown A_NONNULLPOINTER; 85 std::string mSecureFont; 86 87 Label *mNpcFontLabel A_NONNULLPOINTER; 88 DropDown *mNpcFontDropDown A_NONNULLPOINTER; 89 std::string mNpcFont; 90 91 Label *mJapanFontLabel A_NONNULLPOINTER; 92 DropDown *mJapanFontDropDown A_NONNULLPOINTER; 93 std::string mJapanFont; 94 95 Label *mChinaFontLabel A_NONNULLPOINTER; 96 DropDown *mChinaFontDropDown A_NONNULLPOINTER; 97 std::string mChinaFont; 98 99 FontSizeChoiceListModel *mFontSizeListModel A_NONNULLPOINTER; 100 Label *mFontSizeLabel; 101 int mFontSize; 102 DropDown *mFontSizeDropDown; 103 104 FontSizeChoiceListModel *mNpcFontSizeListModel A_NONNULLPOINTER; 105 Label *mNpcFontSizeLabel; 106 int mNpcFontSize; 107 DropDown *mNpcFontSizeDropDown A_NONNULLPOINTER; 108 109 Button *mInfoButton A_NONNULLPOINTER; 110 std::string mThemeInfo; 111 }; 112 113 #endif // GUI_WIDGETS_TABS_SETUP_THEME_H 114