LibreCAD
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
cadmdichild.h
Go to the documentation of this file.
1 #pragma once
2 #include <QScrollBar>
3 #include <QVBoxLayout>
4 #include <QWidget>
5 #include <QKeyEvent>
6 #include <lcadviewer.h>
7 #include "cad/meta/color.h"
8 #include <cad/document/storagemanager.h>
9 
10 #include "cad/document/document.h"
11 #include "cad/document/undomanager.h"
12 #include <drawables/lccursor.h>
13 #include <managers/snapmanager.h>
14 #include <drawables/gradientbackground.h>
15 #include <drawables/grid.h>
16 #include <drawables/dragpoints.h>
17 #include <drawables/tempentities.h>
18 
19 #include <managers/snapmanagerimpl.h>
20 #include "cad/dochelpers/undomanagerimpl.h"
21 
22 #include <file.h>
24 
25 extern "C"
26 {
27 #include "lua.h"
28 #include "lualib.h"
29 #include "lauxlib.h"
30 }
31 
32 #include "lua-intf/LuaIntf/LuaIntf.h"
33 
34 class CadMdiChild : public QWidget {
35  Q_OBJECT
36 
37  public:
38  explicit CadMdiChild(QWidget* parent = 0);
39  ~CadMdiChild();
40 
44  void newDocument();
45 
51  bool openFile();
52 
57  void setDestroyCallback(LuaIntf::LuaRef callback);
58 
59  void keyPressEvent(QKeyEvent* event);
60 
61  public slots:
62  void ctxMenu(const QPoint& pos);
63 
64  signals:
65  void keyPressed(QKeyEvent* event);
66 
67  public:
68  QWidget* view() const;
69  std::shared_ptr<lc::Document> document() const;
70  lc::UndoManager_SPtr undoManager() const;
71  LCViewer::SnapManager_SPtr snapManager() const;
72  lc::StorageManager_SPtr storageManager() const;
73  LCViewer::LCADViewer* viewer() const {return _viewer;}
74  std::shared_ptr<LCViewer::Cursor> cursor() const;
75 
80  lc::Layer_CSPtr activeLayer() const;
81 
82  void setActiveLayer(const lc::Layer_CSPtr& activeLayer);
83 
88  lc::ui::MetaInfoManager_SPtr metaInfoManager() const;
89 
94  LCViewer::TempEntities_SPtr tempEntities();
95 
102  std::vector<lc::entity::CADEntity_CSPtr> selection();
103  void saveFile();
104 
110  unsigned int id();
111 
118  void setId(unsigned int id);
119 
120  const LCViewer::SnapManagerImpl_SPtr &getSnapManager() const;
121 
122  private:
123  unsigned int _id;
124 
125  LuaIntf::LuaRef _destroyCallback;
126 
127  std::shared_ptr<lc::Document> _document;
128  lc::UndoManagerImpl_SPtr _undoManager;
129 
130  std::shared_ptr<LCViewer::Grid> _grid;
131  std::shared_ptr<LCViewer::GradientBackground> _gradientBackground;
132  std::shared_ptr<LCViewer::Cursor> _cursor;
133  LCViewer::SnapManagerImpl_SPtr _snapManager;
134 
135  LCViewer::DragManager_SPtr _dragManager;
136  LCViewer::DragPoints_SPtr _dragPoints;
137  lc::StorageManager_SPtr _storageManager;
138  LCViewer::TempEntities_SPtr _tempEntities;
139 
140  lc::Layer_CSPtr _activeLayer;
141  lc::ui::MetaInfoManager_SPtr _metaInfoManager;
142 
143  QScrollBar* horizontalScrollBar;
144  QScrollBar* verticalScrollBar;
145 
147 
148 
149 };
std::shared_ptr< LCViewer::Grid > _grid
Definition: cadmdichild.h:130
void setActiveLayer(const lc::Layer_CSPtr &activeLayer)
lc::ui::MetaInfoManager_SPtr metaInfoManager() const
Get the MetaInfo manager.
std::shared_ptr< LCViewer::GradientBackground > _gradientBackground
Definition: cadmdichild.h:131
lc::StorageManager_SPtr storageManager() const
void saveFile()
LCViewer::TempEntities_SPtr _tempEntities
Definition: cadmdichild.h:138
std::shared_ptr< lc::Document > _document
Definition: cadmdichild.h:127
std::shared_ptr< LCViewer::Cursor > cursor() const
QWidget * view() const
const LCViewer::SnapManagerImpl_SPtr & getSnapManager() const
LCViewer::LCADViewer * viewer() const
Definition: cadmdichild.h:73
void keyPressEvent(QKeyEvent *event)
LCViewer::SnapManager_SPtr snapManager() const
QScrollBar * verticalScrollBar
Definition: cadmdichild.h:144
void setId(unsigned int id)
Set window ID.
QScrollBar * horizontalScrollBar
Definition: cadmdichild.h:143
bool openFile()
Load existing file.
lc::ui::MetaInfoManager_SPtr _metaInfoManager
Definition: cadmdichild.h:141
lc::UndoManager_SPtr undoManager() const
LCViewer::DragPoints_SPtr _dragPoints
Definition: cadmdichild.h:136
LCViewer::TempEntities_SPtr tempEntities()
Get container of temporary entities.
LCViewer::SnapManagerImpl_SPtr _snapManager
Definition: cadmdichild.h:133
lc::Layer_CSPtr _activeLayer
Definition: cadmdichild.h:140
void keyPressed(QKeyEvent *event)
unsigned int _id
Definition: cadmdichild.h:123
std::vector< lc::entity::CADEntity_CSPtr > selection()
Get selected entities.
unsigned int id()
Get window ID.
LCViewer::DragManager_SPtr _dragManager
Definition: cadmdichild.h:135
LuaIntf::LuaRef _destroyCallback
Definition: cadmdichild.h:125
std::shared_ptr< LCViewer::Cursor > _cursor
Definition: cadmdichild.h:132
LCViewer::LCADViewer * _viewer
Definition: cadmdichild.h:146
void newDocument()
Create a new document.
Definition: cadmdichild.cpp:74
void ctxMenu(const QPoint &pos)
std::shared_ptr< lc::Document > document() const
CadMdiChild(QWidget *parent=0)
Definition: cadmdichild.cpp:17
void setDestroyCallback(LuaIntf::LuaRef callback)
Give function to call when window is destroyed.
lc::StorageManager_SPtr _storageManager
Definition: cadmdichild.h:137
lc::Layer_CSPtr activeLayer() const
Get the selected layer.
lc::UndoManagerImpl_SPtr _undoManager
Definition: cadmdichild.h:128