161 lines
3.2 KiB
C
161 lines
3.2 KiB
C
|
|
||
|
|
||
|
#ifndef TW_MESSAGE_INCLUDED
|
||
|
#define TW_MESSAGE_INCLUDED
|
||
|
|
||
|
#include "tcommon.h"
|
||
|
|
||
|
#undef DVAPI
|
||
|
#undef DVVAR
|
||
|
#ifdef TWIN_EXPORTS
|
||
|
#define DVAPI DV_EXPORT_API
|
||
|
#define DVVAR DV_EXPORT_VAR
|
||
|
#else
|
||
|
#define DVAPI DV_IMPORT_API
|
||
|
#define DVVAR DV_IMPORT_VAR
|
||
|
#endif
|
||
|
|
||
|
class TFilePath;
|
||
|
|
||
|
namespace TMessage
|
||
|
{
|
||
|
|
||
|
class DVAPI Arg
|
||
|
{
|
||
|
TString m_arg;
|
||
|
|
||
|
public:
|
||
|
/*
|
||
|
#if defined(MACOSX)
|
||
|
Arg(const string &arg) {}
|
||
|
Arg(const wstring &arg) {}
|
||
|
Arg(const TFilePath &arg){}
|
||
|
#else
|
||
|
*/
|
||
|
Arg(const string &arg);
|
||
|
Arg(const wstring &arg);
|
||
|
Arg(const TFilePath &arg);
|
||
|
/*#endif*/
|
||
|
|
||
|
TString getString() const { return m_arg; }
|
||
|
};
|
||
|
|
||
|
#ifdef WIN32
|
||
|
#pragma warning(push)
|
||
|
#pragma warning(disable : 4251)
|
||
|
#endif
|
||
|
|
||
|
class DVAPI ArgList
|
||
|
{
|
||
|
vector<Arg> m_args;
|
||
|
|
||
|
public:
|
||
|
ArgList() {}
|
||
|
ArgList(const Arg &arg) { m_args.push_back(arg); }
|
||
|
ArgList(const Arg &arg0, const Arg &arg1)
|
||
|
{
|
||
|
m_args.push_back(arg0);
|
||
|
m_args.push_back(arg1);
|
||
|
}
|
||
|
ArgList(const Arg &arg0, const Arg &arg1, const Arg &arg2)
|
||
|
{
|
||
|
m_args.push_back(arg0);
|
||
|
m_args.push_back(arg1);
|
||
|
m_args.push_back(arg2);
|
||
|
}
|
||
|
int getCount() const { return m_args.size(); }
|
||
|
TString getString(int index) const
|
||
|
{
|
||
|
assert(0 <= index && index < getCount());
|
||
|
return m_args[index].getString();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
#ifdef WIN32
|
||
|
#pragma warning(pop)
|
||
|
#endif
|
||
|
|
||
|
enum Answer { NO = 0,
|
||
|
YES = 1,
|
||
|
CANCEL = -1 };
|
||
|
|
||
|
/*
|
||
|
#if defined(MACOSX)
|
||
|
DVAPI void error(const string &str, const ArgList &lst){}
|
||
|
DVAPI Answer question(const string &str, const ArgList &lst);
|
||
|
DVAPI Answer yesNoCancel(const string &str, const ArgList &lst);
|
||
|
#else
|
||
|
*/
|
||
|
DVAPI void error(const string &str, const ArgList &lst);
|
||
|
|
||
|
DVAPI void info(const string &str, const ArgList &lst);
|
||
|
|
||
|
DVAPI Answer question(const string &str, const ArgList &lst);
|
||
|
DVAPI Answer yesNoCancel(const string &str, const ArgList &lst);
|
||
|
//#endif
|
||
|
|
||
|
inline void info(const string &str)
|
||
|
{
|
||
|
info(str, ArgList());
|
||
|
}
|
||
|
|
||
|
inline void error(const string &str)
|
||
|
{
|
||
|
error(str, ArgList());
|
||
|
}
|
||
|
inline void error(const string &str, const Arg &arg0)
|
||
|
{
|
||
|
error(str, ArgList(arg0));
|
||
|
}
|
||
|
inline void error(const string &str, const Arg &arg0, const Arg &arg1)
|
||
|
{
|
||
|
error(str, ArgList(arg0, arg1));
|
||
|
}
|
||
|
inline void error(const string &str, const Arg &arg0, const Arg &arg1, const Arg &arg2)
|
||
|
{
|
||
|
error(str, ArgList(arg0, arg1, arg2));
|
||
|
}
|
||
|
|
||
|
inline Answer question(const string &str)
|
||
|
{
|
||
|
return question(str, ArgList());
|
||
|
}
|
||
|
inline Answer question(const string &str, const Arg &arg0)
|
||
|
{
|
||
|
return question(str, ArgList(arg0));
|
||
|
}
|
||
|
inline Answer question(const string &str, const Arg &arg0, const Arg &arg1)
|
||
|
{
|
||
|
return question(str, ArgList(arg0, arg1));
|
||
|
}
|
||
|
inline Answer question(const string &str, const Arg &arg0, const Arg &arg1, const Arg &arg2)
|
||
|
{
|
||
|
return question(str, ArgList(arg0, arg1, arg2));
|
||
|
}
|
||
|
|
||
|
inline Answer yesNoCancel(const string &str)
|
||
|
{
|
||
|
return yesNoCancel(str, ArgList());
|
||
|
}
|
||
|
inline Answer yesNoCancel(const string &str, const Arg &arg0)
|
||
|
{
|
||
|
return yesNoCancel(str, ArgList(arg0));
|
||
|
}
|
||
|
inline Answer yesNoCancel(const string &str, const Arg &arg0, const Arg &arg1)
|
||
|
{
|
||
|
return yesNoCancel(str, ArgList(arg0, arg1));
|
||
|
}
|
||
|
inline Answer yesNoCancel(const string &str, const Arg &arg0, const Arg &arg1, const Arg &arg2)
|
||
|
{
|
||
|
return yesNoCancel(str, ArgList(arg0, arg1, arg2));
|
||
|
}
|
||
|
|
||
|
DVAPI int multipleChoicesQuestion(
|
||
|
const string &question,
|
||
|
const ArgList &argLst,
|
||
|
std::vector<string> &buttons);
|
||
|
|
||
|
} // namespace
|
||
|
|
||
|
#endif
|