Remove ancient trunk folder from svn repository
[synfig.git] / synfig-studio / src / synfigapp / uimanager.h
diff --git a/synfig-studio/src/synfigapp/uimanager.h b/synfig-studio/src/synfigapp/uimanager.h
new file mode 100644 (file)
index 0000000..4162569
--- /dev/null
@@ -0,0 +1,130 @@
+/* === S Y N F I G ========================================================= */
+/*!    \file uimanager.h
+**     \brief User Interface Manager Class
+**
+**     $Id$
+**
+**     \legal
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**
+**     This package is free software; you can redistribute it and/or
+**     modify it under the terms of the GNU General Public License as
+**     published by the Free Software Foundation; either version 2 of
+**     the License, or (at your option) any later version.
+**
+**     This package is distributed in the hope that it will be useful,
+**     but WITHOUT ANY WARRANTY; without even the implied warranty of
+**     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+**     General Public License for more details.
+**     \endlegal
+*/
+/* ========================================================================= */
+
+/* === S T A R T =========================================================== */
+
+#ifndef __SYNFIG_APP_UIMANAGER_H
+#define __SYNFIG_APP_UIMANAGER_H
+
+/* === H E A D E R S ======================================================= */
+
+#include <ETL/handle>
+#include <synfig/general.h>
+#include <synfig/string.h>
+#include <sigc++/object.h>
+
+/* === M A C R O S ========================================================= */
+
+/* === T Y P E D E F S ===================================================== */
+
+/* === C L A S S E S & S T R U C T S ======================================= */
+
+namespace synfigapp {
+
+class UIInterface : public etl::shared_object, public synfig::ProgressCallback, public sigc::trackable
+{
+public:
+       enum Response
+       {
+               RESPONSE_CANCEL=-1,
+               RESPONSE_NO=0,
+               RESPONSE_YES=1,
+               RESPONSE_OK=2
+       };
+       virtual ~UIInterface() { }
+       virtual Response confirmation(const std::string &title, const std::string &primaryText,
+                                       const std::string &secondaryText, const std::string &confirmPhrase,
+                                       const std::string &cancelPhrase, Response dflt=RESPONSE_OK)=0;
+       virtual Response yes_no(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES)=0;
+       virtual Response yes_no_cancel(const std::string &title, const std::string &message,Response dflt=RESPONSE_YES)=0;
+       virtual Response ok_cancel(const std::string &title, const std::string &message,Response dflt=RESPONSE_OK)=0;
+};
+
+class DefaultUIInterface : public UIInterface
+{
+public:
+       Response confirmation(const std::string &/*title*/, const std::string &/*primaryText*/,
+                               const std::string &/*secondaryText*/, const std::string &/*confirmPhrase*/,
+                               const std::string &/*cancelPhrase*/, Response dflt)
+               { return dflt; }
+       Response yes_no(const std::string &/*title*/, const std::string &/*message*/,Response dflt)
+               { return dflt; }
+       Response yes_no_cancel(const std::string &/*title*/, const std::string &/*message*/,Response dflt)
+               { return dflt; }
+       Response ok_cancel(const std::string &/*title*/, const std::string &/*message*/,Response dflt)
+               { return dflt; }
+
+       bool task(const std::string &/*task*/)
+               { return true; }
+       bool error(const std::string &/*task*/)
+               { return true; }
+       bool warning(const std::string &/*task*/)
+               { return true; }
+       bool amount_complete(int /*current*/, int /*total*/)
+               { return true; }
+};
+
+class ConfidentUIInterface : public UIInterface
+{
+public:
+       Response confirmation(const std::string &/*title*/, const std::string &/*primaryText*/,
+                               const std::string &/*secondaryText*/, const std::string &/*confirmPhrase*/,
+                               const std::string &/*cancelPhrase*/, Response /*dflt*/)
+               { return RESPONSE_OK; }
+       Response yes_no(const std::string &/*title*/, const std::string &/*message*/,Response /*dflt*/)
+               { return RESPONSE_YES; }
+       Response yes_no_cancel(const std::string &/*title*/, const std::string &/*message*/,Response /*dflt*/)
+               { return RESPONSE_YES; }
+       Response ok_cancel(const std::string &/*title*/, const std::string &/*message*/,Response /*dflt*/)
+               { return RESPONSE_OK; }
+
+       bool task(const std::string &/*task*/)
+               { return true; }
+       bool error(const std::string &/*task*/)
+               { return true; }
+       bool warning(const std::string &/*task*/)
+               { return true; }
+       bool amount_complete(int /*current*/, int /*total*/)
+               { return true; }
+};
+
+class ConsoleUIInterface : public UIInterface
+{
+public:
+       Response confirmation(const std::string &title, const std::string &primaryText,
+                               const std::string &secondaryText, const std::string &confirmPhrase,
+                               const std::string &cancelPhrase, Response dflt);
+       Response yes_no(const std::string &title, const std::string &message,Response dflt);
+       Response yes_no_cancel(const std::string &title, const std::string &message,Response dflt);
+       Response ok_cancel(const std::string &title, const std::string &message,Response dflt);
+
+       bool task(const std::string &task);
+       bool error(const std::string &task);
+       bool warning(const std::string &task);
+       bool amount_complete(int current, int total);
+};
+
+}; // END of namespace synfigapp
+
+/* === E N D =============================================================== */
+
+#endif