tahoma2d/toonz/sources/include/tw/message.h

135 lines
3.4 KiB
C
Raw Normal View History

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