kivio

kivio_view.h
1/*
2 * Kivio - Visual Modelling and Flowcharting
3 * Copyright (C) 2000-2001 theKompany.com & Dave Marotti
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19#ifndef __kivio_gui_h__
20#define __kivio_gui_h__
21
22class KivioView;
23class KivioCanvas;
24class KivioPage;
25class KivioDoc;
26class KivioPainter;
27class KivioPaperLayout;
28class KivioShell;
29class KivioStackBar;
30class KivioStencilSpawner;
31class KivioStencilSpawnerSet;
32class KivioTabBar;
33class TTDESelectColorAction;
34class StencilBarDockManager;
35class KivioArrowHeadAction;
36
37namespace Kivio {
38 class ToolController;
39 class PluginManager;
40 class AddStencilSetDialog;
41 class AddStencilTool;
43}
44
45class KivioBirdEyePanel;
46class KivioLayerPanel;
47class KivioProtectionPanel;
48class KivioStencilGeometryPanel;
49
50class KoDocumentEntry;
51class KoTabBar;
52
53class TDEAction;
54class TDEFontAction;
55class TDEFontSizeAction;
56class TDEToggleAction;
57
58class TDESelectColorAction;
59class TDEActionMenu;
60
61class TQStringList;
62class TQPushButton;
63class TQProgressBar;
64class TQScrollBar;
65class DCOPObject;
66class KoRuler;
67class KoZoomHandler;
68class KoUnitDoubleSpinBox;
69class KStatusBarLabel;
70class KoLineWidthAction;
71class KoLineStyleAction;
72class KoPaletteManager;
73
74#include <tqdom.h>
75#include <tqptrlist.h>
76#include <tqframe.h>
77
78#include <KoView.h>
79#include <KoDocument.h>
80#include <KoUnit.h>
81
82#include <koffice_export.h>
83using namespace Kivio;
84
85class KIVIO_EXPORT KivioView : public KoView
86{
87 TQ_OBJECT
88
89 friend class KivioCanvas;
90
91 public:
92 KivioView( TQWidget *_parent, const char *_name, KivioDoc *_doc );
93 ~KivioView();
94
95 virtual DCOPObject* dcopObject();
96
97 KivioCanvas* canvasWidget() const { return m_pCanvas; }
98 KivioDoc* doc()const { return m_pDoc; }
99
100 KivioPage* activePage() const;
101
102 void setActiveSpawnerSet( KivioStencilSpawnerSet* );
103 KivioStencilSpawnerSet *activeSpawnerSet();
104
105 KoTabBar* tabBar()const { return m_pTabBar;}
106 KoPaletteManager* paletteManager() { return m_pPaletteManager; };
107 void updateMenuPage( );
108
109 virtual void setupPrinter(KPrinter&);
110 virtual void print(KPrinter&);
111
112 virtual TQWidget* canvas() const;
113 virtual int canvasXOffset() const;
114 virtual int canvasYOffset() const;
115
116 bool isSnapGuides()const { return m_bSnapGuides; }
117 bool isShowGuides()const { return m_bShowGuides; }
118 bool isShowRulers()const { return m_bShowRulers; }
119 bool isShowPageMargins()const { return m_bShowPageMargins; }
120
121 virtual int leftBorder() const;
122 virtual int rightBorder() const;
123 virtual int topBorder() const;
124 virtual int bottomBorder() const;
125
126
127 // Returns the current interface color/lineWidth settings
128 TQColor fgColor()const;
129 TQColor bgColor()const;
130 double lineWidth()const;
131 int lineStyle() const;
132 void updateButton();
133 void insertPage( KivioPage* page );
134 void resetLayerPanel();
135 void updateProtectPanelCheckBox();
136
137 KoZoomHandler* zoomHandler() const;
138
139 KoRuler* horzRuler() const { return hRuler; }
140 KoRuler* vertRuler() const { return vRuler; }
141
142 Kivio::PluginManager* pluginManager();
143
144 int hTextAlign();
145 int vTextAlign();
146
147 signals:
148 void zoomChanged(int);
149 void updateStencilSetList();
150
151 protected:
152 void createGeometryDock();
153 void createLayerDock();
154 void createBirdEyeDock();
155 void createProtectionDock();
156 void createObjectListPalette();
157
158 public slots:
159 void paperLayoutDlg();
160
161 void togglePageMargins(bool);
162 void toggleShowRulers(bool);
163 void toggleShowGrid(bool);
164 void toggleSnapGrid(bool);
165 void toggleShowGuides(bool);
166
167 void toggleStencilGeometry(bool);
168 void toggleViewManager(bool);
169
170 void addPage( KivioPage* );
171 void removePage( KivioPage* );
172 void insertPage();
173 void removePage();
174 void renamePage();
175 void hidePage();
176 void showPage();
177 void viewZoom(int);
178
179 void groupStencils();
180 void ungroupStencils();
181
182 void selectAllStencils();
183 void unselectAllStencils();
184
185 void bringStencilToFront();
186 void sendStencilToBack();
187
188 void addStencilFromSpawner( KivioStencilSpawner *pSpawner, double x = 0.0, double y = 0.0 );
189
190 void changePage( const TQString& _name );
191
192 void updateToolBars();
193
194 void cutStencil();
195 void copyStencil();
196 void pasteStencil();
198 void deleteObject();
199
200 void alignStencilsDlg();
201 void optionsDialog();
202
203 void slotPageHidden( KivioPage* page );
204 void slotPageShown( KivioPage* page );
205
206 void setRulerPageLayout(const KoPageLayout& l);
207
208 void popupTabBarMenu( const TQPoint& point );
209
210 void initStatusBarProgress();
211 void setStatusBarProgress(int progress);
212 void removeStatusBarProgress();
213
214 void setActivePage( KivioPage* );
215
216 void setStatusBarInfo(const TQString& text);
217
218 protected slots:
219 void slotPageRenamed( KivioPage* page, const TQString& old_name );
220 void slotUpdateView( KivioPage *_page );
221 void slotUpdateGrid();
222
223 void setFGColor();
224 void setBGColor();
225 void setTextColor();
226
227 void setFontFamily( const TQString & );
228 void setFontSize( int );
229
230 void setLineWidth(double);
231 void setLineStyle(int);
232
233 void toggleFontBold(bool);
234 void toggleFontItalics(bool);
235 void toggleFontUnderline(bool);
236
237 void setHParaAlign( int );
238 void setVParaAlign( int );
239 void textAlignLeft();
240 void textAlignCenter();
241 void textAlignRight();
242 void textSuperScript();
243 void textSubScript();
244 void showAlign( int align );
245 void showVAlign( int align );
246
247 void slotSetStartArrow( int );
248 void slotSetEndArrow( int );
249
250 void slotSetStartArrowSize();
251 void slotSetEndArrowSize();
252
253 void slotChangeStencilPosition(double, double);
254 void slotChangeStencilSize(double, double);
255 void slotChangeStencilRotation(int);
256
257 void viewZoom(const TQString& s);
258
259 void addSpawnerToStackBar( KivioStencilSpawnerSet * );
260 void addStencilSet( const TQString& );
261
262 void setMousePos( int mx, int my );
263 void setRulerUnit(KoUnit::Unit);
264 void setRulerHOffset(int h);
265 void setRulerVOffset(int v);
266 void rulerChangedUnit(KoUnit::Unit u);
267
268 void textFormat();
269 void stencilFormat();
270 void arrowHeadFormat();
271
272 void clipboardDataChanged();
273
274 void installStencilSet();
275
277 void loadingFinished();
278
279 void moveTab(unsigned tab, unsigned target);
280
281 void addGuideLine();
282
283 void showAddStencilSetDialog();
284
285 void updateRulers();
286
287 protected:
288 void setupActions();
289 void initActions();
290
291 virtual void updateReadWrite( bool readwrite );
292 virtual void partActivateEvent(KParts::PartActivateEvent* event);
293
294 void updatePageStatusLabel();
295
296 private:
297 KivioCanvas *m_pCanvas;
298 KoTabBar *m_pTabBar;
299
300 TDEAction* m_paperLayout;
301 TDEAction* m_insertPage;
302 TDEAction* m_removePage;
303 TDEAction* m_renamePage;
304 TDEAction* m_hidePage;
305 TDEAction* m_showPage;
306 TDEAction* m_arrowHeadsMenuAction;
307 TDEAction* m_menuTextFormatAction;
308 TDEAction* m_menuStencilConnectorsAction;
309
310 TTDESelectColorAction *m_setFGColor;
311 TTDESelectColorAction *m_setBGColor;
312
313 TDEFontAction *m_setFontFamily;
314 TDEFontSizeAction *m_setFontSize;
315 TDEToggleAction *m_setBold;
316 TDEToggleAction *m_setItalics;
317 TDEToggleAction *m_setUnderline;
318 TTDESelectColorAction *m_setTextColor;
319 TDEToggleAction* m_textAlignLeft;
320 TDEToggleAction* m_textAlignCenter;
321 TDEToggleAction* m_textAlignRight;
322 TDEToggleAction* m_textVAlignSuper;
323 TDEToggleAction* m_textVAlignSub;
324
325 KivioArrowHeadAction* m_setArrowHeads;
326
327 TQStringList m_lineWidthList;
328
329 KivioDoc* m_pDoc;
330 KivioPage* m_pActivePage;
331 KivioStencilSpawnerSet* m_pActiveSpawnerSet;
332
333 StencilBarDockManager* m_pStencilBarDockManager;
334 KoPaletteManager* m_pPaletteManager;
335
336 KoRuler* vRuler;
337 KoRuler* hRuler;
338
339 KivioStencilGeometryPanel* m_pStencilGeometryPanel;
340 KivioLayerPanel* m_pLayersPanel;
341 KivioBirdEyePanel* m_pBirdEyePanel;
342 KivioProtectionPanel* m_pProtectionPanel;
343 Kivio::ObjectListPalette* m_objectListPalette;
344 TDEToggleAction* showPageMargins;
345 TDEToggleAction* showRulers;
346 TDEToggleAction* showGrid;
347 TDEToggleAction* showGuides;
348 TDEAction *m_selectAll;
349 TDEAction *m_selectNone;
350 TDEAction *m_editCopy;
351 TDEAction* m_editCut;
352 TDEAction* m_editPaste;
353 TDEAction* m_editDelete;
354 bool m_bShowPageMargins;
355 bool m_bShowRulers;
356 bool m_bSnapGuides;
357 bool m_bShowGuides;
358
359 DCOPObject *dcop;
360
361 KoZoomHandler* m_zoomHandler;
362
363 KStatusBarLabel* m_coordSLbl;
364 KStatusBarLabel* m_pageCountSLbl;
365 KStatusBarLabel* m_infoSLbl;
366
367 Kivio::PluginManager* m_pluginManager;
368
369 TDEAction* m_groupAction;
370 TDEAction* m_ungroupAction;
371 TDEAction* m_stencilToFront;
372 TDEAction* m_stencilToBack;
373 TDEAction* m_alignAndDistribute;
374 KoLineWidthAction* m_lineWidthAction;
375 KoLineStyleAction* m_lineStyleAction;
376
377 TQProgressBar* m_statusBarProgress;
378
379 TQScrollBar* m_vertScrollBar;
380 TQScrollBar* m_horzScrollBar;
381 Kivio::AddStencilTool* m_addStencilTool;
382
383 Kivio::AddStencilSetDialog* m_addStencilSetDialog;
384};
385
386#endif
Tool used to add new stencils to the canvas.
Palette showing a list of all objects on the page.
This class manages the plugins.