19#ifndef __kivio_page_h__
20#define __kivio_page_h__
37#include <KoDocument.h>
42#include <tqmemarray.h>
48#include "kivio_stencil.h"
49#include <koffice_export.h>
63 enum Align { None, Left, Center, Right, Top, Bottom };
71 enum Distribute { None, Left, Center, Right, Top, Bottom, Spacing };
72 enum Extent { Selection, Page };
78class KIVIO_EXPORT KivioPage :
public TQObject
83 KivioPage( KivioMap *_map,
const TQString &pageName,
const char *_name=0L );
86 virtual DCOPObject* dcopObject();
88 TQString pageName()
const {
return m_strName; }
89 bool setPageName(
const TQString& name,
bool init =
false );
91 virtual TQDomElement save( TQDomDocument& );
92 virtual void saveOasis(KoStore* store, KoXmlWriter* docWriter, KoGenStyles* styles);
93 virtual bool loadXML(
const TQDomElement& );
94 bool loadOasis(
const TQDomElement& page, KoOasisStyles& oasisStyles);
97 bool isHidden()
const {
return m_bPageHide; }
98 void setHidden(
bool hidden) { m_bPageHide=hidden; }
100 void setMap( KivioMap* _map ) { m_pMap = _map; }
102 KivioDoc* doc()
const {
return m_pDoc; }
103 KivioMap* map()
const {
return m_pMap; }
105 KivioPage *findPage(
const TQString & _name );
107 void print( TQPainter &painter, KPrinter *_printer );
109 int id()
const {
return m_id; }
110 static KivioPage* find(
int _id );
112 KoPageLayout paperLayout()
const {
return m_pPageLayout; }
113 void setPaperLayout(
const KoPageLayout&);
115 void paintContent( KivioPainter& painter,
const TQRect& rect,
bool transparent, TQPoint, KoZoomHandler*,
bool,
bool );
116 void printContent( KivioPainter& painter,
int xdpi = 0,
int ydpi = 0 );
117 void printSelected( KivioPainter& painter,
int xdpi = 0,
int ydpi = 0 );
118 void printContent(KivioPainter& painter, KoZoomHandler* zoomHandler);
120 bool isStencilSelected( KivioStencil * );
121 void selectAllStencils();
122 void unselectAllStencils();
123 bool unselectStencil( KivioStencil * );
124 void selectStencil( KivioStencil * );
125 void selectStencils(
double,
double,
double,
double );
126 TQPtrList<KivioStencil> *selectedStencils() {
return &m_lstSelection; }
127 bool checkForStencilTypeInSelection(KivioStencilType type);
128 bool checkForTextBoxesInSelection();
130 KoRect getRectForAllSelectedStencils();
131 KoRect getRectForAllStencils();
133 int generateStencilIds(
int );
135 KivioStencil *checkForStencil( KoPoint *,
int *,
double,
bool);
138 KivioLayer *curLayer()
const {
return m_pCurLayer; }
139 void setCurLayer( KivioLayer *pLayer ) { m_pCurLayer=pLayer; }
141 TQPtrList<KivioLayer> *layers() {
return &m_lstLayers; }
142 KivioLayer *firstLayer();
143 KivioLayer *nextLayer();
144 KivioLayer *lastLayer();
145 KivioLayer *prevLayer();
146 bool removeCurrentLayer();
147 void addLayer( KivioLayer * );
148 void insertLayer(
int, KivioLayer * );
149 KivioLayer *layerAt(
int );
150 void takeLayer( KivioLayer *pLayer );
155 bool addStencil( KivioStencil * );
156 void alignStencils( AlignData );
157 void distributeStencils( DistributeData );
159 KivioConnectorTarget *connectPointToTarget( KivioConnectorPoint *,
double );
160 KoPoint snapToTarget(
const KoPoint& p,
double thresh,
bool& hit );
162 void setHidePage(
bool _hide);
164 TQValueList<double> horizontalGuideLines()
const {
return m_hGuideLines; }
165 TQValueList<double> verticalGuideLines()
const {
return m_vGuideLines; }
168 void deleteSelectedStencils();
169 void groupSelectedStencils();
170 void ungroupSelectedStencils();
177 void paste(KivioView* view);
179 void setPaintSelected(
bool paint =
true);
181 void setGuideLines(
const TQValueList<double> hGuideLines,
const TQValueList<double> vGuideLines);
182 void addGuideLine(TQt::Orientation orientation,
double position);
185 void sig_updateView( KivioPage *_page );
186 void sig_updateView( KivioPage *_page,
const TQRect& );
187 void sig_nameChanged( KivioPage* page,
const TQString& old_name );
189 void sig_PageHidden(KivioPage *_page);
190 void sig_PageShown(KivioPage *_page);
192 void sig_pageLayoutChanged(
const KoPageLayout&);
195 void printPage( TQPainter &_painter,
const TQRect& page_range,
const TQRect& view );
197 TQDomElement saveLayout( TQDomDocument & );
198 bool loadLayout(
const TQDomElement & );
200 void saveGuideLines(TQDomElement& element);
201 void loadGuideLines(
const TQDomElement& element);
208 TQPtrList<KivioLayer> m_lstLayers;
209 KivioLayer *m_pCurLayer;
211 TQPtrList<KivioStencil> m_lstSelection;
216 static TQIntDict<KivioPage>* s_mapPages;
218 KoPageLayout m_pPageLayout;
222 TQValueList<double> m_hGuideLines;
223 TQValueList<double> m_vGuideLines;