kword

KWDocStruct.h
1/* This file is part of the KDE project
2 Copyright (C) 1998, 1999 Reginald Stadlbauer <reggie@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18*/
19
20#ifndef docstruct_h
21#define docstruct_h
22
23#include <tdelistview.h>
24#include <tqwidget.h>
25
26class KWDocument;
27class KWFormulaFrameSet;
28class KWPictureFrameSet;
29class KWPartFrameSet;
30class KWGUI;
31class TQWidget;
32class TQVBoxLayout;
33class KWFrame;
34class KWFrameSet;
35class KWTextParag;
36
37/******************************************************************/
38/* Class: KWOrderedFrameSet */
39/******************************************************************/
40
43{
44public:
46 KWOrderedFrameSet(); // default constructor
47 bool operator<( KWOrderedFrameSet ofs);
48 KWFrameSet* frameSet() { return m_frameset; }
49
50private:
51 KWFrameSet* m_frameset;
52};
53
54class KWDocListViewItem : public TDEListViewItem
55{
56public:
57 enum ItemType {
58 IT_BASE = FT_BASE,
59 IT_TEXT = FT_TEXT,
60 IT_PICTURE = FT_PICTURE,
61 IT_PART = FT_PART,
62 IT_FORMULA = FT_FORMULA,
63 IT_CLIPART = FT_CLIPART,
64 IT_TABLE = FT_TABLE,
65 IT_ROOT = 11,
66 IT_TEXTFRAME = 12,
67 IT_PARAG = 13
68 };
69
70 KWDocListViewItem(TQListViewItem *_parent, const TQString &_text);
71 KWDocListViewItem(TQListViewItem *_parent, TQListViewItem *_after, const TQString &_text);
72 KWDocListViewItem(TQListView *_parent, const TQString &_text);
73 virtual ItemType itemType() { return IT_BASE; }
74 virtual void selectItem() {}
75 virtual void editItem() {}
76 virtual void deleteItem() {}
77 virtual void editProperties() {}
78 virtual void speakItem() {}
79 virtual void contextMenu(TQListViewItem *, const TQPoint &, int) {}
80
81protected:
82 KWDocument* doc();
83 KWGUI* gui();
84 void deleteAllChildren();
85};
86
87/******************************************************************/
88/* Class: KWDocStructParagItem */
89/******************************************************************/
90
91class KWDocStructParagItem : public KWDocListViewItem
92{
93public:
94 KWDocStructParagItem(TQListViewItem* parent, const TQString& text, KWTextParag* parag);
95 KWDocStructParagItem(TQListViewItem* parent, TQListViewItem* after, const TQString& text, KWTextParag* parag);
96 virtual ItemType itemType() { return IT_PARAG; }
97 virtual void selectItem();
98 virtual void editItem();
99 virtual void deleteItem();
100 virtual void editProperties();
101 virtual void speakItem();
102 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
103
104 KWTextParag* parag() const { return m_parag; }
105
106protected:
107 KWTextParag* m_parag;
108};
109
110/******************************************************************/
111/* Class: KWDocStructTextFrameItem */
112/******************************************************************/
113
114class KWDocStructTextFrameItem : public KWDocListViewItem
115{
116public:
117 KWDocStructTextFrameItem(TQListViewItem* parent, const TQString& text,
118 KWTextFrameSet* frameset, KWFrame* frame );
119 KWDocStructTextFrameItem(TQListViewItem* parent, TQListViewItem* after, const TQString& text,
120 KWTextFrameSet* frameset, KWFrame* frame );
121 virtual int ItemType() { return IT_TEXTFRAME; }
122 virtual void selectItem();
123 virtual void editItem();
124 virtual void deleteItem();
125 virtual void editProperties();
126 virtual void speakItem();
127 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
128
129 KWFrame* frame() const { return m_frame; }
130 KWTextFrameSet* frameSet() const { return m_frameset; };
131 void setupTextParags();
132 KWDocStructParagItem* findTextParagItem(const KWTextParag* parag);
133
134protected:
135 KWFrame* m_frame;
136 KWTextFrameSet* m_frameset;
137};
138
139
140/******************************************************************/
141/* Class: KWDocStructTextFrameSetItem */
142/******************************************************************/
143
144class KWDocStructTextFrameSetItem : public KWDocListViewItem
145{
146public:
147 KWDocStructTextFrameSetItem(TQListViewItem* parent, const TQString& text, KWTextFrameSet* frameset);
148 KWDocStructTextFrameSetItem(TQListViewItem* parent, TQListViewItem* after, const TQString& text,
149 KWTextFrameSet* frameset );
150 virtual int ItemType() { return IT_TEXT; }
151 virtual void selectItem();
152 virtual void editItem();
153 virtual void deleteItem();
154 virtual void editProperties();
155 virtual void speakItem();
156 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
157
158 KWTextFrameSet* frameSet() const { return m_frameset; };
159 void setupTextFrames();
160 KWDocStructTextFrameItem* findTextFrameItem(const KWFrame* frame);
161
162protected:
163 KWTextFrameSet* m_frameset;
164
165};
166
167/******************************************************************/
168/* Class: KWDocStructTableItem */
169/******************************************************************/
170
171class KWDocStructTableItem : public KWDocListViewItem
172{
173public:
174 KWDocStructTableItem(TQListViewItem* parent, const TQString& text, KWTableFrameSet* table );
175 KWDocStructTableItem(TQListViewItem* parent, TQListViewItem* after, const TQString& text,
176 KWTableFrameSet* table );
177 virtual int ItemType() { return IT_TABLE; }
178 virtual void selectItem();
179 virtual void editItem();
180 virtual void deleteItem();
181 virtual void editProperties();
182 virtual void speakItem();
183 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
184
185 KWTableFrameSet* table() const { return m_table; };
186 void setupCells();
187 KWDocStructTextFrameItem* findCellItem(const KWTextFrameSet* cell);
188
189protected:
190 KWTableFrameSet* m_table;
191};
192
193/******************************************************************/
194/* Class: KWDocStructFormulaItem */
195/******************************************************************/
196
197class KWDocStructFormulaItem : public KWDocListViewItem
198{
199public:
200 KWDocStructFormulaItem(TQListViewItem* parent, const TQString& text, KWFormulaFrameSet* form);
201 virtual int ItemType() { return IT_FORMULA; }
202 virtual void selectItem();
203 virtual void editItem();
204 virtual void deleteItem();
205 virtual void editProperties();
206 virtual void speakItem();
207 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
208
209protected:
210 KWFormulaFrameSet* m_form;
211};
212
213
214/******************************************************************/
215/* Class: KWDocStructPictureItem */
216/******************************************************************/
217
218class KWDocStructPictureItem : public KWDocListViewItem
219{
220public:
221 KWDocStructPictureItem(TQListViewItem* parent, const TQString& text, KWPictureFrameSet* pic);
222 virtual int ItemType() { return IT_PICTURE; }
223 virtual void selectItem();
224 virtual void editItem();
225 virtual void deleteItem();
226 virtual void editProperties();
227 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
228
229protected:
230 KWPictureFrameSet* m_pic;
231};
232
233/******************************************************************/
234/* Class: KWDocStructPartItem */
235/******************************************************************/
236
237class KWDocStructPartItem : public KWDocListViewItem
238{
239public:
240 KWDocStructPartItem(TQListViewItem* parent, const TQString& text, KWPartFrameSet* part);
241 virtual int ItemType() { return IT_PART; }
242 virtual void selectItem();
243 virtual void editItem();
244 virtual void deleteItem();
245 virtual void editProperties();
246 virtual void contextMenu(TQListViewItem* item, const TQPoint& p, int);
247
248protected:
249 KWPartFrameSet* m_part;
250};
251
252/******************************************************************/
253/* Class: KWDocStructRootItem */
254/******************************************************************/
255
256class KWDocStructRootItem : public KWDocListViewItem
257{
258public:
259 KWDocStructRootItem(TQListView* parent, const TQString& text, TypeStructDocItem type);
260
261 virtual int ItemType() { return IT_ROOT; }
262 void setupArrangement();
263 void setupTextFrameSets();
264 void setupTables();
265 void setupPictures();
266 void setupEmbedded();
267 void setupFormulaFrames();
268 virtual void setOpen(bool o);
269
270protected:
271 KWDocStructTextFrameSetItem* findTextFrameSetItem(const KWFrameSet* frameset);
272 KWDocStructTableItem* findTableItem(const KWFrameSet* frameset);
273
274 TypeStructDocItem m_type;
275
276};
277
278/******************************************************************/
279/* Class: KWDocStructTree */
280/******************************************************************/
281
282class KWDocStructTree : public TDEListView
283{
284 TQ_OBJECT
285
286
287public:
288 KWDocStructTree( TQWidget* parent, KWDocument* doc, KWGUI* gui );
289 ~KWDocStructTree();
290
291 void setup();
292 void refreshTree(int _type);
293 TQSize minimumSizeHint() const {
294 return TQSize( 0, 0 );
295 }
296 void selectItem();
297 void editItem();
298 void deleteItem();
299 void editProperties();
300 void speakItem();
301
302 KWDocument* doc() { return m_doc; };
303 KWGUI* gui() { return m_gui; };
304
305public slots:
306 void slotContextMenu(TDEListView* l, TQListViewItem* i, const TQPoint& p);
307 void slotRightButtonClicked(TQListViewItem*, const TQPoint&, int);
308 void slotDoubleClicked(TQListViewItem* item);
309 void slotReturnPressed(TQListViewItem* item);
310
311protected:
312 KWDocument* m_doc;
313 KWGUI* m_gui;
314
315 KWDocStructRootItem *arrangement, *tables, *pictures, *textfrms, *embedded, *formulafrms;
316};
317
318/******************************************************************/
319/* Class: KWDocStruct */
320/******************************************************************/
321
322class KWDocStruct : public TQWidget
323{
324 TQ_OBJECT
325
326
327public:
328 KWDocStruct( TQWidget* parent, KWDocument* doc, KWGUI* gui );
329 void selectItem();
330 void editItem();
331 void deleteItem();
332 void editProperties();
333 void speakItem();
336 void refreshTree(int _type);
338 void setFocusHere();
339
340public slots:
342 void refreshEntireTree();
343
344protected:
345 KWDocStructTree* m_tree;
346 TQVBoxLayout* m_layout;
347
348 virtual void paintEvent(TQPaintEvent* ev);
349
350 KWDocument* m_doc;
351 KWGUI* m_gui;
352 int dirtyTreeTypes;
353};
354
355#endif
Class: KWFrameSet Base type, a frameset holds content as well as frames to show that content.
Definition KWFrameSet.h:62
This class represents a single frame.
Definition KWFrame.h:68
Provides a way to sort framesets using a TQValueList based on their top left corner.
Definition KWDocStruct.h:43
A frameset that contains an embedded object (a KWDocumentChild)
This class implements tables by acting as the manager for the frame(set)s which make up the table cel...
Class: KWTextFrameSet Contains text (KoTextObject) and frames to display that text.
This class extends KoTextParag for KWord-specific formatting stuff, custom items, loading and saving.
Definition KWTextParag.h:41