1
0
mirror of https://github.com/narzoul/DDrawCompat synced 2024-12-30 08:55:36 +01:00

56 lines
1.6 KiB
C++

#pragma once
#include <list>
#include <memory>
#include <string>
#include <Overlay/ButtonControl.h>
#include <Overlay/LabelControl.h>
#include <Overlay/ScrollBarControl.h>
#include <Overlay/SettingControl.h>
#include <Overlay/Window.h>
namespace Overlay
{
class ConfigWindow : public Window
{
public:
ConfigWindow();
virtual void onMouseWheel(POINT pos, SHORT delta) override;
virtual void onNotify(Control& control) override;
virtual void setVisible(bool isVisible) override;
void setFocus(SettingControl* control);
void updateButtons();
private:
static void onClose(Control& control);
static void onExport(Control& control);
static void onImport(Control& control);
static void onResetAll(Control& control);
virtual RECT calculateRect(const RECT& monitorRect) const override;
std::unique_ptr<ButtonControl> addButton(const std::string& label, ButtonControl::ClickHandler clickHandler);
void addSettingControl(Config::Setting& setting, SettingControl::UpdateFunc updateFunc);
void addSettingControls();
std::string constructFileContent();
void exportSettings();
void importSettings();
void resetSettings();
unsigned m_buttonCount;
std::unique_ptr<LabelControl> m_caption;
std::unique_ptr<ButtonControl> m_captionCloseButton;
std::unique_ptr<ButtonControl> m_closeButton;
std::unique_ptr<ButtonControl> m_exportButton;
std::unique_ptr<ButtonControl> m_importButton;
std::unique_ptr<ButtonControl> m_resetAllButton;
std::unique_ptr<ScrollBarControl> m_scrollBar;
std::list<SettingControl> m_settingControls;
SettingControl* m_focus;
std::string m_fileContent;
};
}