X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fsynfigstudio_0_61_07_rc1%2Fsrc%2Fgtkmm%2Fdockmanager.h;fp=synfig-studio%2Ftags%2Fsynfigstudio_0_61_07_rc1%2Fsrc%2Fgtkmm%2Fdockmanager.h;h=98df3764990ef587f7392bed73e6df572a7cf618;hb=e9077d5c0858c23469cc10d6aeb8ad1d6d86caae;hp=0000000000000000000000000000000000000000;hpb=7d32b486bfe48032fdb52fbb3b6f144a6ce7e63e;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_0_61_07_rc1/src/gtkmm/dockmanager.h b/synfig-studio/tags/synfigstudio_0_61_07_rc1/src/gtkmm/dockmanager.h new file mode 100644 index 0000000..98df376 --- /dev/null +++ b/synfig-studio/tags/synfigstudio_0_61_07_rc1/src/gtkmm/dockmanager.h @@ -0,0 +1,82 @@ +/* === S Y N F I G ========================================================= */ +/*! \file dockmanager.h +** \brief Template Header +** +** $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_DOCKMANAGER_H +#define __SYNFIG_DOCKMANAGER_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include +#include + +/* === 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 studio { + +class Dockable; +class DockDialog; +class DockSettings; + +class DockManager : public sigc::trackable +{ + friend class Dockable; + friend class DockDialog; + friend class DockSettings; + + std::list dockable_list_; + std::list dock_dialog_list_; + + sigc::signal signal_dockable_registered_; + + etl::smart_ptr dock_settings; + +public: + DockManager(); + ~DockManager(); + + DockDialog& find_dock_dialog(int id); + const DockDialog& find_dock_dialog(int id)const; + + sigc::signal& signal_dockable_registered() { return signal_dockable_registered_; } + + void register_dockable(Dockable& x); + bool unregister_dockable(Dockable& x); + Dockable& find_dockable(const synfig::String& x); + void present(synfig::String x); + +}; // END of class DockManager + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif