Antares Simulator
Power System Simulator
Loading...
Searching...
No Matches
addtools.h
1/*
2** Copyright 2007-2024, RTE (https://www.rte-france.com)
3** See AUTHORS.txt
4** SPDX-License-Identifier: MPL-2.0
5** This file is part of Antares-Simulator,
6** Adequacy and Performance assessment for interconnected energy networks.
7**
8** Antares_Simulator is free software: you can redistribute it and/or modify
9** it under the terms of the Mozilla Public Licence 2.0 as published by
10** the Mozilla Foundation, either version 2 of the License, or
11** (at your option) any later version.
12**
13** Antares_Simulator is distributed in the hope that it will be useful,
14** but WITHOUT ANY WARRANTY; without even the implied warranty of
15** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16** Mozilla Public Licence 2.0 for more details.
17**
18** You should have received a copy of the Mozilla Public Licence 2.0
19** along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
20*/
21#ifndef __ANTARES_TOOLBOX_MAP_CONTROLS_ADD_TOOLS_H__
22#define __ANTARES_TOOLBOX_MAP_CONTROLS_ADD_TOOLS_H__
23
24#include "../tools/tool.h"
25#include "../manager.h"
26
27namespace Antares
28{
29namespace Map
30{
31namespace Private
32{
34{
35public:
37 Tool::List& list,
38 const int selectedCount,
39 const int connectionSelectedCount,
40 const wxPoint& top,
41 const wxPoint& bottom);
42
43 Tool::Tool* operator()();
44
45private:
46 template<class T>
47 T* createInstance()
48 {
49 T* t = new T(pManager);
50 pList.push_back(t);
51 return t;
52 }
53
54 template<class T>
55 T* createToolToTheLeft()
56 {
57 T* t = createInstance<T>();
58 t->x(pTop.x - t->width());
59 t->y(pTop.y);
60 pTop.y += t->height();
61 return t;
62 }
63
64 template<class T>
65 T* createToolToTheBottom()
66 {
67 T* t = createInstance<T>();
68 t->x(pBottom.x);
69 t->y(pBottom.y);
70 pBottom.x += t->width();
71 return t;
72 }
73
74 void createToolsForRealNodes();
75 void createToolsForConnections();
76 Tool::Tool* createCommonTools(const bool haveRealNodes, const bool haveConnections);
77
78private:
79 Manager& pManager;
80 Tool::List& pList;
81 const int pSelectedCount;
82 const int pConnectionsSelectedCount;
83 wxPoint pTop;
84 wxPoint pBottom;
85};
86
87} // namespace Private
88} // namespace Map
89} // namespace Antares
90
91#endif // __ANTARES_TOOLBOX_MAP_CONTROLS_ADD_TOOLS_H__
A convenient container for nodes on the graph.
Definition manager.h:46
Visual component to make an action on the selected items.
Definition tool.h:52