| #pragma once |
| |
| #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: |
| |
| |
| |
| |
| |
| |
| |
| Arg(const string &arg); |
| Arg(const wstring &arg); |
| Arg(const TFilePath &arg); |
| |
| |
| 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 }; |
| |
| |
| |
| |
| |
| |
| |
| |
| 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); |
| |
| |
| 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); |
| |
| } |
| |
| #endif |