98 lines
1.7 KiB
C++
98 lines
1.7 KiB
C++
#pragma once
|
|
#include "defines.h"
|
|
#include <string>
|
|
#include <vector>
|
|
#include <commdlg.h>
|
|
#include <Shlobj.h>
|
|
#undef MessageBox
|
|
|
|
HWND GetTopMostWindowInCurrentProcess();
|
|
|
|
enum class DialogResult
|
|
{
|
|
None,
|
|
OK,
|
|
Cancel,
|
|
Abort,
|
|
Retry,
|
|
Ignore,
|
|
Yes,
|
|
No
|
|
};
|
|
|
|
class OpenFileDialog
|
|
{
|
|
public:
|
|
std::vector<std::string> SelectedPaths;
|
|
std::string InitialDirectory;
|
|
std::string Filter;
|
|
int FilterIndex;
|
|
bool Multiselect;
|
|
bool SupportMultiDottedExtensions;
|
|
bool DereferenceLinks;
|
|
bool ValidateNames;
|
|
std::string Title;
|
|
|
|
OpenFileDialog();
|
|
DialogResult ShowDialog(HWND owner);
|
|
};
|
|
|
|
class SaveFileDialog
|
|
{
|
|
public:
|
|
std::string SelectedPath;
|
|
std::string InitialDirectory;
|
|
std::string Filter;
|
|
int FilterIndex;
|
|
bool SupportMultiDottedExtensions;
|
|
bool DereferenceLinks;
|
|
bool ValidateNames;
|
|
std::string Title;
|
|
|
|
SaveFileDialog();
|
|
DialogResult ShowDialog(HWND owner);
|
|
};
|
|
|
|
class FolderBrowserDialog
|
|
{
|
|
public:
|
|
std::string SelectedPath;
|
|
std::string Description;
|
|
bool ShowNewFolderButton;
|
|
bool Multiselect;
|
|
|
|
FolderBrowserDialog();
|
|
DialogResult ShowDialog(HWND owner);
|
|
};
|
|
|
|
class ColorDialog
|
|
{
|
|
public:
|
|
COLORREF Color;
|
|
|
|
ColorDialog();
|
|
DialogResult ShowDialog(HWND owner);
|
|
};
|
|
|
|
class FontDialog
|
|
{
|
|
public:
|
|
std::string FontName;
|
|
int FontSize;
|
|
COLORREF Color;
|
|
bool Bold;
|
|
bool Italic;
|
|
bool Underline;
|
|
bool Strikeout;
|
|
|
|
FontDialog();
|
|
DialogResult ShowDialog(HWND owner);
|
|
};
|
|
|
|
class MessageBox
|
|
{
|
|
public:
|
|
static DialogResult Show(const std::string& text, const std::string& caption = "", UINT type = MB_OK);
|
|
static DialogResult Show(const std::wstring& text, const std::wstring& caption = L"", UINT type = MB_OK);
|
|
};
|