nim_duilib/ui_components/msgbox/msgbox.h
jiajia_deng ad9a6b3edc Modified the namespace of the UI component
Signed-off-by: jiajia_deng <2894220@gmail.com>
2019-09-22 11:08:20 +08:00

64 lines
1.8 KiB
C++

#pragma once
#include "duilib/UIlib.h"
namespace nim_comp {
enum MsgBoxRet
{
MB_YES,
MB_NO
};
typedef std::function<void(MsgBoxRet)> MsgboxCallback;
void ShowMsgBox(HWND hwnd, MsgboxCallback cb,
const std::wstring &content = L"", bool content_is_id = true,
const std::wstring &title = L"STRING_TIPS", bool title_is_id = true,
const std::wstring &yes = L"STRING_OK", bool btn_yes_is_id = true,
const std::wstring &no = L"", bool btn_no_is_id = false);
class MsgBox : public ui::WindowImplBase
{
public:
friend void ShowMsgBox(HWND hwnd, MsgboxCallback cb,
const std::wstring &content, bool content_is_id,
const std::wstring &title, bool title_is_id,
const std::wstring &yes, bool btn_yes_is_id,
const std::wstring &no, bool btn_no_is_id);
public:
MsgBox();
virtual ~MsgBox();
virtual std::wstring GetSkinFolder() override;
virtual std::wstring GetSkinFile() override;
virtual std::wstring GetZIPFileName() const;
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) override;
virtual void OnEsc(BOOL &bHandled);
virtual void Close(UINT nRet = IDOK) override;
virtual std::wstring GetWindowClassName() const override;
virtual std::wstring GetWindowId() const /*override*/;
virtual UINT GetClassStyle() const override;
virtual void InitWindow() override;
private:
bool OnClicked(ui::EventArgs* msg);
void SetTitle(const std::wstring &str);
void SetContent(const std::wstring &str);
void SetButton(const std::wstring &yes, const std::wstring &no);
void Show(HWND hwnd, MsgboxCallback cb);
void EndMsgBox(MsgBoxRet ret);
public:
static const LPCTSTR kClassName;
private:
ui::Label* title_;
ui::RichEdit* content_;
ui::Button* btn_yes_;
ui::Button* btn_no_;
MsgboxCallback msgbox_callback_;
};
}