]> Shamusworld >> Repos - architektonas/blob - src/widgets/qg_dialogfactory.h
a4d6cb00dea0ed4f0dd395c61601997505b949d8
[architektonas] / src / widgets / qg_dialogfactory.h
1 #ifndef QG_DIALOGFACTORY_H
2 #define QG_DIALOGFACTORY_H
3
4 #include <QtGui>
5 #include "rs_dialogfactoryinterface.h"
6 #include "vector.h"
7 #include "rs_debug.h"
8
9 class CadToolBar;
10 class CommandWidget;
11 class CoordinateWidget;
12 class RS_Document;
13 class QG_MainWindowInterface;
14 class MouseWidget;
15 class SelectionWidget;
16
17 #define QG_DIALOGFACTORY (RS_DialogFactory::instance()->getFactoryObject()->isAdapter()==false ? ((QG_DialogFactory*)RS_DialogFactory::instance()->getFactoryObject()) : NULL)
18
19 // !A_WIDGET
20 /**
21  * This is the Qt implementation of a widget which can create and
22  * show dialogs.
23  */
24 class QG_DialogFactory: public RS_DialogFactoryInterface
25 {
26         public:
27                 QG_DialogFactory(QWidget * parent, QToolBar * ow);
28                 virtual ~QG_DialogFactory();
29
30         protected:
31                 virtual void setOptionWidget(QToolBar * ow);
32
33         public:
34                 virtual void setCoordinateWidget(CoordinateWidget * cw);
35                 virtual void setMouseWidget(MouseWidget * mw);
36                 virtual void setSelectionWidget(SelectionWidget * sw);
37                 virtual void setCadToolBar(CadToolBar * ctb);
38                 CadToolBar * getCadToolBar();
39                 virtual void setCommandWidget(CommandWidget * cw);
40                 CommandWidget * getCommandWidget();
41                 virtual void setMainWindow(QG_MainWindowInterface * mw);
42                 virtual void requestWarningDialog(const QString& warning);
43
44                 virtual RS_GraphicView * requestNewDocument(const QString& fileName = QString::null,
45                         RS_Document * doc = NULL);
46                 virtual void requestSimulationControls();
47
48                 virtual RS_Layer * requestNewLayerDialog(RS_LayerList * layerList = NULL);
49                 virtual RS_Layer * requestLayerRemovalDialog(RS_LayerList * layerList = NULL);
50                 virtual RS_Layer * requestEditLayerDialog(RS_LayerList * layerList = NULL);
51
52                 virtual RS_BlockData requestNewBlockDialog(RS_BlockList * blockList);
53                 virtual RS_Block * requestBlockRemovalDialog(RS_BlockList * blockList);
54                 virtual RS_BlockData requestBlockAttributesDialog(RS_BlockList * blockList);
55                 virtual void requestEditBlockWindow(RS_BlockList * /*blockList*/);
56                 virtual void closeEditBlockWindow(RS_Block * /*blockList*/);
57                 //virtual QString requestFileSaveAsDialog();
58                 //virtual QString requestFileOpenDialog();
59
60                 virtual QString requestImageOpenDialog();
61                 virtual void requestOptions(RS_ActionInterface * action, bool on, bool update = false);
62
63         protected:
64                 virtual void requestPrintPreviewOptions(RS_ActionInterface * action, bool on, bool update);
65                 virtual void requestLineOptions(RS_ActionInterface * action, bool on);
66                 virtual void requestPolylineOptions(RS_ActionInterface * action, bool on, bool update);
67                 virtual void requestLineAngleOptions(RS_ActionInterface * action, bool on, bool update);
68                 virtual void requestLineRelAngleOptions(RS_ActionInterface * action, bool on, bool update);
69                 virtual void requestLineParallelOptions(RS_ActionInterface * action, bool on, bool update);
70                 virtual void requestLineParallelThroughOptions(RS_ActionInterface * action, bool on, bool update);
71                 virtual void requestLineBisectorOptions(RS_ActionInterface * action, bool on, bool update);
72                 virtual void requestLinePolygonOptions(RS_ActionInterface * action, bool on, bool update);
73                 virtual void requestLinePolygon2Options(RS_ActionInterface * action, bool on, bool update);
74                 virtual void requestArcOptions(RS_ActionInterface * action, bool on, bool update);
75                 virtual void requestArcTangentialOptions(RS_ActionInterface * action, bool on, bool update);
76                 virtual void requestCircleOptions(RS_ActionInterface * action, bool on, bool update);
77                 virtual void requestSplineOptions(RS_ActionInterface * action, bool on, bool update);
78                 virtual void requestTextOptions(RS_ActionInterface * action, bool on, bool update);
79                 virtual void requestDimensionOptions(RS_ActionInterface * action, bool on, bool update);
80                 virtual void requestDimLinearOptions(RS_ActionInterface * action, bool on, bool update);
81                 virtual void requestInsertOptions(RS_ActionInterface * action, bool on, bool update);
82                 virtual void requestImageOptions(RS_ActionInterface * action, bool on, bool update);
83                 virtual void requestTrimAmountOptions(RS_ActionInterface * action, bool on, bool update);
84                 virtual void requestMoveRotateOptions(RS_ActionInterface * action, bool on, bool update);
85                 virtual void requestBevelOptions(RS_ActionInterface * action, bool on, bool update);
86                 virtual void requestRoundOptions(RS_ActionInterface * action, bool on, bool update);
87                 virtual void requestLibraryInsertOptions(RS_ActionInterface * action, bool on, bool update);
88
89         public:
90                 virtual void requestSnapDistOptions(double& dist, bool on);
91
92         public:
93                 virtual void requestToolBar(RS2::ToolBarId id);
94                 virtual void requestToolBarSelect(RS_ActionInterface * selectAction, RS2::ActionType nextAction);
95
96                 virtual bool requestAttributesDialog(RS_AttributesData & data, RS_LayerList & layerList);
97                 virtual bool requestMoveDialog(RS_MoveData & data);
98                 virtual bool requestRotateDialog(RS_RotateData & data);
99                 virtual bool requestScaleDialog(RS_ScaleData & data);
100                 virtual bool requestMirrorDialog(RS_MirrorData & data);
101                 virtual bool requestMoveRotateDialog(RS_MoveRotateData & data);
102                 virtual bool requestRotate2Dialog(RS_Rotate2Data & data);
103
104                 virtual bool requestModifyEntityDialog(RS_Entity * entity);
105                 virtual bool requestTextDialog(RS_Text * text);
106                 virtual bool requestHatchDialog(RS_Hatch * hatch);
107
108 #ifdef RS_CAM
109                 virtual bool requestCamOptionsDialog(Drawing & graphic);
110 #endif
111
112                 virtual void requestOptionsGeneralDialog();
113                 virtual void requestOptionsDrawingDialog(Drawing & graphic);
114
115                 virtual void requestPreviousMenu();
116
117                 virtual void updateCoordinateWidget(const Vector & abs,
118                         const Vector & rel, bool updateFormat = false);
119                 virtual void updateMouseWidget(const QString & left, const QString & right);
120                 virtual void updateSelectionWidget(int num);
121                 virtual void commandMessage(const QString & message);
122                 virtual bool isAdapter();
123
124                 static QString extToFormat(const QString & ext);
125
126         protected:
127                 //! Pointer to the widget which can host dialogs
128                 QWidget * parent;
129                 //! Pointer to the widget which can host individual tool options
130                 QToolBar * optionWidget;
131                 //! Pointer to the coordinate widget.
132                 CoordinateWidget * coordinateWidget;
133                 //! Pointer to the mouse widget.
134                 MouseWidget * mouseWidget;
135                 //! Pointer to the selection widget.
136                 SelectionWidget * selectionWidget;
137                 //! Pointer to the CAD tool bar
138                 CadToolBar * cadToolBar;
139                 //! Pointer to the command line widget
140                 CommandWidget * commandWidget;
141                 //! Pointer to the main app window
142                 QG_MainWindowInterface * mainWindow;
143 };
144
145 #endif