/* workspace-window.hpp - Definition of the main workspace window object Copyright (C) Lumiera.org 2008, Joel Holdsworth 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 02139, USA. */ /** @file workspace-window.hpp ** This file contains the definition of the main workspace window ** parent, which is the toplevel parent of the whole workspace. ** ** @see actions.hpp */ #ifndef WORKSPACE_WINDOW_HPP #define WORKSPACE_WINDOW_HPP #include #include #include "actions.hpp" #include "../panels/assets-panel.hpp" #include "../panels/viewer-panel.hpp" #include "../panels/timeline-panel.hpp" using namespace gui::panels; namespace gui { namespace model { class Project; } // model namespace workspace { /** * The main lumiera workspace window */ class WorkspaceWindow : public Gtk::Window { public: WorkspaceWindow(gui::model::Project &source_project); ~WorkspaceWindow(); gui::model::Project& get_project(); private: void create_ui(); /* ===== Model ===== */ private: gui::model::Project &project; /* ===== UI ===== */ private: Glib::RefPtr uiManager; Gtk::VBox baseContainer; Gtk::HBox dockContainer; //----- Dock Frame -----// Gtk::Widget *dock; Gtk::Widget *dockbar; GdlDockLayout *layout; //----- Status Bar -----// Gtk::Statusbar statusBar; /* ===== Panels ===== */ private: AssetsPanel *assetsPanel; ViewerPanel *viewerPanel; TimelinePanel *timelinePanel; /* ===== Helpers ===== */ private: /** * The instantiation of the actions helper class, which * registers and handles user action events */ Actions actions; friend class Actions; }; } // namespace workspace } // namespace gui #endif // WORKSPACE_WINDOW_HPP