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