2023-01-30 21:18:59 +02:00
/*
* 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"
2023-02-18 17:35:07 +02:00
class BattleInterface ;
class CTabbedInt ;
enum class EUserEvent ;
2023-01-30 21:18:59 +02:00
2023-02-19 13:18:54 +02:00
/// <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>
2023-02-18 18:58:22 +02:00
class SettingsMainWindow : public InterfaceObjectConfigurable
2023-01-30 21:18:59 +02:00
{
private :
2023-02-12 16:49:17 +02:00
BattleInterface * parentBattleInterface ;
2023-01-30 21:18:59 +02:00
std : : shared_ptr < CTabbedInt > tabContentArea ;
std : : shared_ptr < CIntObject > createTab ( size_t index ) ;
2023-01-30 23:15:37 +02:00
void openTab ( size_t index ) ;
2023-01-31 00:26:33 +02:00
void close ( ) ; //TODO: copypaste of WindowBase::close(), consider changing Windowbase to IWindowbase with default close() implementation and changing WindowBase inheritance to CIntObject + IWindowBase
void loadGameButtonCallback ( ) ;
void saveGameButtonCallback ( ) ;
void quitGameButtonCallback ( ) ;
void backButtonCallback ( ) ;
void restartGameButtonCallback ( ) ;
void mainMenuButtonCallback ( ) ;
2023-01-30 21:18:59 +02:00
public :
2023-02-18 18:58:22 +02:00
SettingsMainWindow ( BattleInterface * parentBattleInterface = nullptr ) ;
2023-03-03 00:24:05 +02:00
2023-06-02 15:42:18 +02:00
void showAll ( Canvas & to ) override ;
2023-05-19 22:54:43 +02:00
void onScreenResize ( ) override ;
2023-01-30 21:18:59 +02:00
} ;