1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-12 10:03:53 +02:00
vcmi/client/windows/settings/SettingsMainWindow.h

47 lines
1.4 KiB
C++

/*
* SettingsMainContainer.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
#include "gui/InterfaceObjectConfigurable.h"
class BattleInterface;
class CTabbedInt;
enum class EUserEvent;
/// <summary>
///Original H3 settings were replaced with this window in Github PR #1540. New options added are intended to be clientside settings.
///By design, most new options that alter gameplay UI from now on should be added to "gameTweaks" config key.
/// </summary>
class SettingsMainWindow : public InterfaceObjectConfigurable
{
private:
BattleInterface * parentBattleInterface;
std::shared_ptr<CTabbedInt> tabContentArea;
std::shared_ptr<CIntObject> createTab(size_t index);
void openTab(size_t index);
void close(); //TODO: copypaste of WindowBase::close(), consider changing Windowbase to IWindowbase with default close() implementation and changing WindowBase inheritance to CIntObject + IWindowBase
void closeAndPushEvent(EUserEvent code);
void loadGameButtonCallback();
void saveGameButtonCallback();
void quitGameButtonCallback();
void backButtonCallback();
void restartGameButtonCallback();
void mainMenuButtonCallback();
public:
SettingsMainWindow(BattleInterface * parentBattleInterface = nullptr);
void showAll(SDL_Surface * to);
};