Nemiver  0.3
nmv-layout-manager.h
Go to the documentation of this file.
1 //Author: Fabien Parent
2 /*
3  *This file is part of the Nemiver project
4  *
5  *Nemiver is free software; you can redistribute
6  *it and/or modify it under the terms of
7  *the GNU General Public License as published by the
8  *Free Software Foundation; either version 2,
9  *or (at your option) any later version.
10  *
11  *Nemiver is distributed in the hope that it will
12  *be useful, but WITHOUT ANY WARRANTY;
13  *without even the implied warranty of
14  *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *See the GNU General Public License for more details.
16  *
17  *You should have received a copy of the
18  *GNU General Public License along with Nemiver;
19  *see the file COPYING.
20  *If not, write to the Free Software Foundation,
21  *Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22  *
23  *See COPYRIGHT file copyright information.
24  */
25 #ifndef __NMV_LAYOUT_MANAGER_H__
26 #define __NMV_LAYOUT_MANAGER_H__
27 
29 #include "common/nmv-ustring.h"
30 #include "nmv-layout.h"
31 #include <vector>
32 
33 NEMIVER_BEGIN_NAMESPACE (nemiver)
34 
37 
38 class Layout;
39 class IPerspective;
40 
42  //non copyable
44  LayoutManager& operator= (const LayoutManager&);
45 
46  struct Priv;
47  SafePtr<Priv> m_priv;
48 
49 public:
50  LayoutManager ();
51 
52  void register_layout (const LayoutSafePtr &a_layout);
53 
54  void load_layout (const UString &a_layout, IPerspective &a_perspective);
55 
56  Layout* layout () const;
57 
58  std::vector<Layout*> layouts () const;
59 
60  bool is_layout_registered (const UString &a_layout_identifier) const;
61 
64 
65  sigc::signal<void>& layout_changed_signal () const;
66 
68 
69  virtual ~LayoutManager ();
70 };
71 
72 NEMIVER_END_NAMESPACE (nemiver)
73 
74 #endif //__NMV_LAYOUT_MANAGER_H__
nmv-safe-ptr-utils.h
nemiver
Definition: nmv-address.h:31
nmv-ustring.h
nmv-layout.h
nemiver::common::UString
Definition: nmv-ustring.h:45
nemiver::Layout
The base class for Layouts.
Definition: nmv-layout.h:48
nemiver::LayoutManager
Definition: nmv-layout-manager.h:41
nemiver::IPerspective
Definition: nmv-i-perspective.h:54
nemiver::common::SafePtr
Definition: nmv-safe-ptr.h:71