00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef BAKERY_APP_GTK_H
00020 #define BAKERY_APP_GTK_H
00021
00022 #include <bakery/App/App.h>
00023 #include <gtkmm/menubar.h>
00024 #include <gtkmm/menu.h>
00025 #include <gtkmm/toolbar.h>
00026 #include <gtkmm/handlebox.h>
00027 #include <gtkmm/dialog.h>
00028
00029
00030 namespace Bakery
00031 {
00032
00039 class App_Gtk
00040 : virtual public App,
00041 virtual public Gtk::Window
00042 {
00043 public:
00044 friend class AppInstanceManager;
00045
00047 App_Gtk(const Glib::ustring& appname);
00048 virtual ~App_Gtk();
00049
00051 virtual void add(Gtk::Widget& child);
00052
00053 protected:
00054
00055 virtual void init();
00056 virtual void init_menus();
00057 virtual void init_menus_file();
00058 virtual void init_menus_edit();
00059 virtual void init_menus_help();
00060 virtual void init_toolbars();
00061
00062 virtual void init_layout();
00063
00064 virtual void on_hide();
00065
00066
00067
00068
00069
00070 virtual void on_menu_help_about();
00071
00072
00073 virtual void on_about_close();
00074
00075
00076
00077
00078
00079 virtual void ui_hide();
00080 virtual void ui_bring_to_front();
00081
00082 virtual bool on_delete_event(GdkEventAny *event);
00083
00084
00085
00086
00087
00088
00089
00090 typedef Gtk::Toolbar_Helpers::Element type_toolbar_items;
00091 typedef std::vector<type_toolbar_items> type_vecToolbarItems;
00092 type_vecToolbarItems m_toolbar_UI_Infos;
00093
00094
00095 Gtk::VBox m_VBox;
00096 Gtk::VBox m_VBox_PlaceHolder;
00097
00098 Gtk::MenuBar m_MenuBar;
00099 Gtk::Menu m_Menu_File, m_Menu_Edit, m_Menu_Help;
00100
00101 Gtk::HandleBox m_HandleBox_Toolbar;
00102 Gtk::Toolbar m_Toolbar;
00103
00104
00105 static Gtk::Window* m_pAbout;
00106
00107
00108
00109
00110 };
00111
00112 }
00113
00114 #endif //BAKERY_APP_GTK_H