2016-05-17 03:04:11 +12:00
|
|
|
#pragma once
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#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;
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
namespace TMessage {
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
class DVAPI Arg {
|
|
|
|
TString m_arg;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
/*
|
2016-03-19 06:57:51 +13:00
|
|
|
#if defined(MACOSX)
|
2016-06-15 18:43:10 +12:00
|
|
|
Arg(const string &arg) {}
|
|
|
|
Arg(const wstring &arg) {}
|
|
|
|
Arg(const TFilePath &arg){}
|
2016-03-19 06:57:51 +13:00
|
|
|
#else
|
|
|
|
*/
|
2016-06-15 18:43:10 +12:00
|
|
|
Arg(const string &arg);
|
|
|
|
Arg(const wstring &arg);
|
|
|
|
Arg(const TFilePath &arg);
|
|
|
|
/*#endif*/
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TString getString() const { return m_arg; }
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef WIN32
|
|
|
|
#pragma warning(push)
|
|
|
|
#pragma warning(disable : 4251)
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
class DVAPI ArgList {
|
|
|
|
vector<Arg> m_args;
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
public:
|
2016-06-15 18:43:10 +12:00
|
|
|
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();
|
|
|
|
}
|
2016-03-19 06:57:51 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef WIN32
|
|
|
|
#pragma warning(pop)
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
enum Answer { NO = 0, YES = 1, CANCEL = -1 };
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
/*
|
|
|
|
#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
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
inline void info(const string &str) { info(str, ArgList()); }
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
inline void error(const string &str) { error(str, ArgList()); }
|
|
|
|
inline void error(const string &str, const Arg &arg0) {
|
|
|
|
error(str, ArgList(arg0));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline void error(const string &str, const Arg &arg0, const Arg &arg1) {
|
|
|
|
error(str, ArgList(arg0, arg1));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline void error(const string &str, const Arg &arg0, const Arg &arg1,
|
|
|
|
const Arg &arg2) {
|
|
|
|
error(str, ArgList(arg0, arg1, arg2));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer question(const string &str) { return question(str, ArgList()); }
|
|
|
|
inline Answer question(const string &str, const Arg &arg0) {
|
|
|
|
return question(str, ArgList(arg0));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer question(const string &str, const Arg &arg0, const Arg &arg1) {
|
|
|
|
return question(str, ArgList(arg0, arg1));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer question(const string &str, const Arg &arg0, const Arg &arg1,
|
|
|
|
const Arg &arg2) {
|
|
|
|
return question(str, ArgList(arg0, arg1, arg2));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer yesNoCancel(const string &str) {
|
|
|
|
return yesNoCancel(str, ArgList());
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer yesNoCancel(const string &str, const Arg &arg0) {
|
|
|
|
return yesNoCancel(str, ArgList(arg0));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer yesNoCancel(const string &str, const Arg &arg0, const Arg &arg1) {
|
|
|
|
return yesNoCancel(str, ArgList(arg0, arg1));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
2016-06-15 18:43:10 +12:00
|
|
|
inline Answer yesNoCancel(const string &str, const Arg &arg0, const Arg &arg1,
|
|
|
|
const Arg &arg2) {
|
|
|
|
return yesNoCancel(str, ArgList(arg0, arg1, arg2));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
DVAPI int multipleChoicesQuestion(const string &question, const ArgList &argLst,
|
|
|
|
std::vector<string> &buttons);
|
2016-03-19 06:57:51 +13:00
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
} // namespace
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
#endif
|