mirror of
https://github.com/narzoul/DDrawCompat
synced 2024-12-30 08:55:36 +01:00
56 lines
1.6 KiB
C++
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;
|
|
};
|
|
}
|