OpenStructure
build-dev-doc
stage
include
ost
gui
tools
tool_manager.hh
Go to the documentation of this file.
1
//------------------------------------------------------------------------------
2
// This file is part of the OpenStructure project <www.openstructure.org>
3
//
4
// Copyright (C) 2008-2020 by the OpenStructure authors
5
//
6
// This library is free software; you can redistribute it and/or modify it under
7
// the terms of the GNU Lesser General Public License as published by the Free
8
// Software Foundation; either version 3.0 of the License, or (at your option)
9
// any later version.
10
// This library is distributed in the hope that it will be useful, but WITHOUT
11
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13
// details.
14
//
15
// You should have received a copy of the GNU Lesser General Public License
16
// along with this library; if not, write to the Free Software Foundation, Inc.,
17
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
//------------------------------------------------------------------------------
19
#ifndef OST_GUI_TOOL_MANAGER_HH
20
#define OST_GUI_TOOL_MANAGER_HH
21
22
#include <
ost/gui/module_config.hh
>
23
24
#include <
ost/gui/tools/tool.hh
>
25
26
#include <QObject>
27
/*
28
Author: Marco Biasini
29
*/
30
31
namespace
ost
{
namespace
gui {
32
33
typedef
std::vector<Tool*>
ToolList
;
34
35
class
DLLEXPORT_OST_GUI
ToolManager
:
public
QObject {
36
Q_OBJECT
37
public
:
38
static
ToolManager
&
Instance
();
42
void
AddTool
(
Tool
* tool);
43
44
void
SetActiveTool
(
Tool
* tool);
45
Tool
*
FindToolByName
(
const
String
& name)
const
;
46
Tool
*
GetActiveTool
()
const
;
47
48
const
ToolList
&
GetTools
()
const
;
49
signals:
50
void
ToolAdded
(
Tool
*);
51
void
ActiveToolChanged
(
Tool
*);
52
private
:
53
ToolManager
();
54
ToolList
tools_;
55
Tool
* active_tool_;
56
};
57
58
}}
59
60
#endif
ost::gui::Tool
base class for tools
Definition:
tool.hh:62
ost::gui::ToolManager
Definition:
tool_manager.hh:35
ost::gui::ToolManager::FindToolByName
Tool * FindToolByName(const String &name) const
ost::gui::ToolManager::AddTool
void AddTool(Tool *tool)
add tool to tool manager
ost::gui::ToolManager::ToolAdded
void ToolAdded(Tool *)
ost::gui::ToolManager::GetTools
const ToolList & GetTools() const
ost::gui::ToolManager::SetActiveTool
void SetActiveTool(Tool *tool)
ost::gui::ToolManager::Instance
static ToolManager & Instance()
ost::gui::ToolManager::GetActiveTool
Tool * GetActiveTool() const
ost::gui::ToolManager::ActiveToolChanged
void ActiveToolChanged(Tool *)
module_config.hh
DLLEXPORT_OST_GUI
#define DLLEXPORT_OST_GUI
Definition:
module_config.hh:33
String
std::string String
Definition:
base.hh:54
ost::gui::ToolList
std::vector< Tool * > ToolList
Definition:
tool_manager.hh:33
ost
Definition:
base.dox:1
tool.hh
Generated by
1.9.1