#pragma once #include #include #include "DlgPage.h" // CDlgSaveScheme 对话框 enum save_method { SAVE_DISCARD = 0, SAVE_OVERWRITE, SAVE_NEW, }; enum { SAVE_REASON_QUIT_UI = 0, SAVE_REASON_SWITCH_SCHEME, SAVE_REASON_RESTORE, }; #define SAVE_METHOD_MASK(m) (1 << m) class dlg_save_scheme : public dlg_base { std::vector existing_; std::wstring name_ = L""; save_method method_ = SAVE_DISCARD; BOOL handle_message(UINT msg, WPARAM wp, LPARAM lp) override; void handle_command(WORD code, WORD id, HANDLE ctrl); void handle_notify(UINT id, LPNMHDR pnhdr); void layout(void); void on_init_dlg(void); void on_paint(HDC hdc); void goto_name(void); void check_radio(UINT id, bool check = true); public: dlg_save_scheme(HWND parent); ~dlg_save_scheme(); public: void set_info(const wchar_t* name, std::vector& existing, int mask, const wchar_t* new_name = nullptr); save_method get_dispose(void); std::wstring get_name(void); };