fw4spl
ToolboxLayoutManagerBase.hpp
1 /* ***** BEGIN LICENSE BLOCK *****
2  * FW4SPL - Copyright (C) IRCAD, 2009-2018.
3  * Distributed under the terms of the GNU Lesser General Public License (LGPL) as
4  * published by the Free Software Foundation.
5  * ****** END LICENSE BLOCK ****** */
6 
7 #pragma once
8 
9 #include "fwGui/config.hpp"
11 
12 #include <fwCore/base.hpp>
13 
14 #include <list>
15 
16 namespace fwGui
17 {
18 namespace layoutManager
19 {
20 
24 class FWGUI_CLASS_API ToolboxLayoutManagerBase : public IViewLayoutManager
25 {
26 
27 public:
28 
30 
31  typedef std::string RegistryKeyType;
32 
33  class ViewInfo
34  {
35  public:
36 
37  ViewInfo() :
38  m_border(0),
39  m_minSize(std::make_pair(-1, -1)),
40  m_caption(""),
41  m_visible(true),
42  m_expanded(false),
43  m_useScrollBar(false)
44  {
45  }
46 
47  int m_border;
48  std::pair< int, int > m_minSize;
49  std::string m_caption;
50  bool m_visible;
51  bool m_expanded;
52  bool m_useScrollBar;
53  };
54 
56  FWGUI_API ToolboxLayoutManagerBase();
57 
59  FWGUI_API virtual ~ToolboxLayoutManagerBase();
60 
93  FWGUI_API virtual void initialize( ConfigurationType configuration) override;
94 
95  FWGUI_API static const RegistryKeyType REGISTRY_KEY;
96 
97 protected:
98 
99  //------------------------------------------------------------------------------
100 
101  std::list< ViewInfo> getViewsInfo()
102  {
103  return m_views;
104  }
105 
106 private:
107 
109  std::list< ViewInfo> m_views;
110 };
111 
112 } // namespace layoutManager
113 } // namespace fwGui
#define fwCoreNonInstanciableClassDefinitionsMacro(_classinfo_)
Generate common code for Non Instanciable classes (Interfaces, Abstract classes, ...)
The namespace fwGui contains the base interface for IHM services.
Definition: SJobBar.hpp:23
This file defines the interface of the base class for managing a layout geometry. ...
STL namespace.
Defines the generic layout manager for IHM.
Defines the base for line layout manager.