2008-04-10 16:36:21 +02:00
/*
2008-04-11 23:04:39 +02:00
gtk - lumiera . hpp - Application wide global definitions
Copyright ( C ) Lumiera . org
2008 , Joel Holdsworth < joel @ airwebreathe . org . uk >
This program 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 program 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 .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
/** @file gtk-lumiera.hpp
* * This file contains application wide global definitions
* * user actions .
2008-04-20 00:16:27 +02:00
* * @ see gtk - lumiera . cpp
2008-04-10 16:36:21 +02:00
*/
2008-04-11 23:04:39 +02:00
# ifndef GTK_LUMIERA_HPP
2008-04-20 00:16:27 +02:00
# define GTK_LUMIERA_HPP
2008-04-12 18:46:32 +02:00
2008-04-16 19:24:11 +02:00
# include <gtkmm.h>
2009-01-10 18:01:09 +01:00
# include <nobug.h> // need to include this after gtkmm.h, because types.h from GTK tries to shaddow the ERROR macro from windows, which kills NoBug's ERROR macro
2008-06-23 11:54:37 +02:00
# include <vector>
2008-10-20 20:19:06 +02:00
# include <boost/utility.hpp>
2009-01-01 19:43:46 +01:00
# include <boost/optional.hpp>
2008-12-05 21:17:56 +01:00
# include <boost/shared_ptr.hpp>
2008-12-20 14:00:48 +01:00
# include <boost/weak_ptr.hpp>
2009-01-02 17:47:29 +01:00
# include <boost/scoped_ptr.hpp>
2008-12-17 17:53:32 +01:00
# include "lib/util.hpp"
2008-06-07 14:53:17 +02:00
2008-06-20 00:35:53 +02:00
extern " C " {
# include <gavl/gavltime.h>
}
2008-06-19 00:57:47 +02:00
2008-06-07 14:53:17 +02:00
NOBUG_DECLARE_FLAG ( gui ) ;
2008-04-16 19:24:11 +02:00
2008-04-10 16:36:21 +02:00
# ifdef ENABLE_NLS
# include <libintl.h>
# define _(String) gettext (String)
# define gettext_noop(String) String
# define N_(String) gettext_noop (String)
# else
# define _(String) (String)
# define N_(String) String
# define textdomain(Domain)
# define bindtextdomain(Package, Directory)
# endif
2008-04-11 21:28:15 +02:00
2008-08-16 18:41:57 +02:00
/**
* The namespace of all GUI code .
*/
2008-04-12 18:46:32 +02:00
namespace gui {
2008-08-16 18:41:57 +02:00
/* ===== The Application Class ===== */
2008-08-13 20:15:13 +02:00
/**
* The main application class .
*/
2008-10-20 20:19:06 +02:00
class GtkLumiera : private boost : : noncopyable
2008-08-13 20:15:13 +02:00
{
public :
2009-01-03 16:57:51 +01:00
void main ( int argc , char * argv [ ] ) ;
2008-08-13 20:15:13 +02:00
static Glib : : ustring get_home_data_path ( ) ;
2008-12-30 13:35:58 +01:00
public :
/* ----- Constants ----- */
/**
* The name of the application
*/
static const gchar * AppTitle ;
/**
* The version number of the application
*/
static const gchar * AppVersion ;
/**
* The copyright of the application
*/
static const gchar * AppCopyright ;
/**
* The website of the application
*/
static const gchar * AppWebsite ;
/**
* An alphabetical list of the application ' s authors
*/
static const gchar * AppAuthors [ ] ;
/**
* The number of authors in AppAuthors
* */
static const int AppAuthorCount ;
2008-08-13 20:15:13 +02:00
} ;
/**
* Returns a reference to the global application object
*/
GtkLumiera & application ( ) ;
2008-04-12 18:46:32 +02:00
2008-08-16 18:41:57 +02:00
/* ===== Namespace Definitions ===== */
/**
* The namespace of all dialog box classes .
*/
namespace dialogs { }
2008-08-16 21:04:05 +02:00
/**
* The namespace of data model classes .
*/
namespace model { }
2008-08-16 18:41:57 +02:00
/**
* The namespace of all video output implementations .
*/
namespace output { }
/**
* The namespace of all docking panel classes .
*/
namespace panels { }
/**
* The namespace of all Lumiera custom widgets .
*/
namespace widgets { }
/**
* The namespace of the workspace window , and it ' s helper classes .
*/
namespace workspace { }
2008-04-12 18:46:32 +02:00
} // namespace gui
2008-04-11 23:04:39 +02:00
2008-04-20 00:16:27 +02:00
# endif // GTK_LUMIERA_HPP
2008-04-11 23:04:39 +02:00