kivio

kivio_group_stencil.h
1/*
2 * Kivio - Visual Modelling and Flowcharting
3 * Copyright (C) 2000-2004 theKompany.com & Dave Marotti
4 * Peter Simonsson
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20#ifndef KIVIO_GROUP_STENCIL_H
21#define KIVIO_GROUP_STENCIL_H
22
23#include "kivio_stencil.h"
24
25#include <tqdom.h>
26
27class KivioIntraStencilData;
28class KivioLayer;
29class KivioPage;
30class KivioPainter;
31
32class KivioGroupStencil : public KivioStencil
33{
34 protected:
35 // The list of child stencils
36 TQPtrList<KivioStencil> *m_pGroupList;
37 int checkForCollision(const KoPoint& p);
38
39 public:
40 KivioGroupStencil();
41 virtual ~KivioGroupStencil();
42
43
44 // File I/O routines
45 virtual bool loadXML( const TQDomElement &, KivioLayer * );
46 virtual TQDomElement saveXML( TQDomDocument & );
47
48
49 // Painting routines
50 virtual void paintOutline( KivioIntraStencilData * );
51 virtual void paint( KivioIntraStencilData * );
52 virtual void paintConnectorTargets( KivioIntraStencilData * );
53
54
55 // Duplication
56 virtual KivioStencil *duplicate();
57
58
59 // FG/Color operations
60 virtual void setFGColor( TQColor );
61 virtual void setBGColor( TQColor );
62
63
64
65 // Text operations
66 virtual TQColor textColor();
67 virtual void setTextColor( TQColor );
68
69 virtual TQFont textFont();
70 virtual void setTextFont( const TQFont & );
71
72 virtual int hTextAlign();
73 virtual int vTextAlign();
74
75 virtual void setHTextAlign(int);
76 virtual void setVTextAlign(int);
77
78 virtual void setText( const TQString & );
79 virtual TQString text();
80
81
82 // Line width
83 virtual void setLineWidth( double );
84
85
86 // Collision detection
87 virtual KivioCollisionType checkForCollision( KoPoint *, double );
88
89
90 // Group operations
91 virtual void addToGroup( KivioStencil * );
92 virtual TQPtrList<KivioStencil> *groupList() { return m_pGroupList; }
93
94
95 // Position / Dimension operations
96 virtual void setX( double );
97 virtual void setY( double );
98 virtual void setW( double );
99 virtual void setH( double );
100 virtual void setPosition( double f1, double f2 );
101 virtual void setDimensions( double f1, double f2 );
102
103
104 // ID generation
105 virtual int generateIds( int );
106
107
108 // Connection operations
109 virtual KivioConnectorTarget *connectToTarget( KivioConnectorPoint *, double );
110 virtual KivioConnectorTarget *connectToTarget( KivioConnectorPoint *, int );
111
112 virtual void searchForConnections( KivioPage * );
113
114 virtual int resizeHandlePositions();
115
120 virtual TQString getTextBoxName(const KoPoint& p);
121
122 virtual void setText(const TQString& text, const TQString& name);
123 virtual TQString text(const TQString& name);
124
125 virtual bool hasTextBox() const;
126
127 virtual TQColor textColor(const TQString& textBoxName);
128 virtual void setTextColor(const TQString& textBoxName, const TQColor& color);
129
130 virtual TQFont textFont(const TQString& textBoxName);
131 virtual void setTextFont(const TQString& textBoxName, const TQFont& font);
132
133 virtual int hTextAlign(const TQString& textBoxName);
134 virtual int vTextAlign(const TQString& textBoxName);
135
136 virtual void setHTextAlign(const TQString& textBoxName, int align);
137 virtual void setVTextAlign(const TQString& textBoxName, int align);
138};
139
140#endif
141