code_twain/sane/DlgSaveScheme.h

48 lines
1004 B
C
Raw Normal View History

#pragma once
#include <Windows.h>
#include <string>
#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<std::wstring> 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<std::wstring>& existing, int mask, const wchar_t* new_name = nullptr);
save_method get_dispose(void);
std::wstring get_name(void);
};