#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: /* #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 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 &buttons); } // namespace #endif