/*
* 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;
///
///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.
///
class SettingsMainWindow : public InterfaceObjectConfigurable
{
private:
BattleInterface * parentBattleInterface;
std::shared_ptr tabContentArea;
std::shared_ptr 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);
};