00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef docstruct_h
00021 #define docstruct_h
00022
00023 #include <klistview.h>
00024 #include <qwidget.h>
00025
00026 class KWDocument;
00027 class KWFormulaFrameSet;
00028 class KWPictureFrameSet;
00029 class KWPartFrameSet;
00030 class KWGUI;
00031 class QWidget;
00032 class QVBoxLayout;
00033 class KWFrame;
00034 class KWFrameSet;
00035 class KWTextParag;
00036
00037
00038
00039
00040
00042 class KWOrderedFrameSet
00043 {
00044 public:
00045 KWOrderedFrameSet(KWFrameSet* fs);
00046 KWOrderedFrameSet();
00047 bool operator<( KWOrderedFrameSet ofs);
00048 KWFrameSet* frameSet() { return m_frameset; }
00049
00050 private:
00051 KWFrameSet* m_frameset;
00052 };
00053
00054 class KWDocListViewItem : public KListViewItem
00055 {
00056 public:
00057 enum ItemType {
00058 IT_BASE = FT_BASE,
00059 IT_TEXT = FT_TEXT,
00060 IT_PICTURE = FT_PICTURE,
00061 IT_PART = FT_PART,
00062 IT_FORMULA = FT_FORMULA,
00063 IT_CLIPART = FT_CLIPART,
00064 IT_TABLE = FT_TABLE,
00065 IT_ROOT = 11,
00066 IT_TEXTFRAME = 12,
00067 IT_PARAG = 13
00068 };
00069
00070 KWDocListViewItem(QListViewItem *_parent, const QString &_text);
00071 KWDocListViewItem(QListViewItem *_parent, QListViewItem *_after, const QString &_text);
00072 KWDocListViewItem(QListView *_parent, const QString &_text);
00073 virtual ItemType itemType() { return IT_BASE; }
00074 virtual void selectItem() {}
00075 virtual void editItem() {}
00076 virtual void deleteItem() {}
00077 virtual void editProperties() {}
00078 virtual void speakItem() {}
00079 virtual void contextMenu(QListViewItem *, const QPoint &, int) {}
00080
00081 protected:
00082 KWDocument* doc();
00083 KWGUI* gui();
00084 void deleteAllChildren();
00085 };
00086
00087
00088
00089
00090
00091 class KWDocStructParagItem : public KWDocListViewItem
00092 {
00093 public:
00094 KWDocStructParagItem(QListViewItem* parent, const QString& text, KWTextParag* parag);
00095 KWDocStructParagItem(QListViewItem* parent, QListViewItem* after, const QString& text, KWTextParag* parag);
00096 virtual ItemType itemType() { return IT_PARAG; }
00097 virtual void selectItem();
00098 virtual void editItem();
00099 virtual void deleteItem();
00100 virtual void editProperties();
00101 virtual void speakItem();
00102 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00103
00104 KWTextParag* parag() const { return m_parag; }
00105
00106 protected:
00107 KWTextParag* m_parag;
00108 };
00109
00110
00111
00112
00113
00114 class KWDocStructTextFrameItem : public KWDocListViewItem
00115 {
00116 public:
00117 KWDocStructTextFrameItem(QListViewItem* parent, const QString& text,
00118 KWTextFrameSet* frameset, KWFrame* frame );
00119 KWDocStructTextFrameItem(QListViewItem* parent, QListViewItem* after, const QString& text,
00120 KWTextFrameSet* frameset, KWFrame* frame );
00121 virtual int ItemType() { return IT_TEXTFRAME; }
00122 virtual void selectItem();
00123 virtual void editItem();
00124 virtual void deleteItem();
00125 virtual void editProperties();
00126 virtual void speakItem();
00127 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00128
00129 KWFrame* frame() const { return m_frame; }
00130 KWTextFrameSet* frameSet() const { return m_frameset; };
00131 void setupTextParags();
00132 KWDocStructParagItem* findTextParagItem(const KWTextParag* parag);
00133
00134 protected:
00135 KWFrame* m_frame;
00136 KWTextFrameSet* m_frameset;
00137 };
00138
00139
00140
00141
00142
00143
00144 class KWDocStructTextFrameSetItem : public KWDocListViewItem
00145 {
00146 public:
00147 KWDocStructTextFrameSetItem(QListViewItem* parent, const QString& text, KWTextFrameSet* frameset);
00148 KWDocStructTextFrameSetItem(QListViewItem* parent, QListViewItem* after, const QString& text,
00149 KWTextFrameSet* frameset );
00150 virtual int ItemType() { return IT_TEXT; }
00151 virtual void selectItem();
00152 virtual void editItem();
00153 virtual void deleteItem();
00154 virtual void editProperties();
00155 virtual void speakItem();
00156 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00157
00158 KWTextFrameSet* frameSet() const { return m_frameset; };
00159 void setupTextFrames();
00160 KWDocStructTextFrameItem* findTextFrameItem(const KWFrame* frame);
00161
00162 protected:
00163 KWTextFrameSet* m_frameset;
00164
00165 };
00166
00167
00168
00169
00170
00171 class KWDocStructTableItem : public KWDocListViewItem
00172 {
00173 public:
00174 KWDocStructTableItem(QListViewItem* parent, const QString& text, KWTableFrameSet* table );
00175 KWDocStructTableItem(QListViewItem* parent, QListViewItem* after, const QString& text,
00176 KWTableFrameSet* table );
00177 virtual int ItemType() { return IT_TABLE; }
00178 virtual void selectItem();
00179 virtual void editItem();
00180 virtual void deleteItem();
00181 virtual void editProperties();
00182 virtual void speakItem();
00183 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00184
00185 KWTableFrameSet* table() const { return m_table; };
00186 void setupCells();
00187 KWDocStructTextFrameItem* findCellItem(const KWTextFrameSet* cell);
00188
00189 protected:
00190 KWTableFrameSet* m_table;
00191 };
00192
00193
00194
00195
00196
00197 class KWDocStructFormulaItem : public KWDocListViewItem
00198 {
00199 public:
00200 KWDocStructFormulaItem(QListViewItem* parent, const QString& text, KWFormulaFrameSet* form);
00201 virtual int ItemType() { return IT_FORMULA; }
00202 virtual void selectItem();
00203 virtual void editItem();
00204 virtual void deleteItem();
00205 virtual void editProperties();
00206 virtual void speakItem();
00207 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00208
00209 protected:
00210 KWFormulaFrameSet* m_form;
00211 };
00212
00213
00214
00215
00216
00217
00218 class KWDocStructPictureItem : public KWDocListViewItem
00219 {
00220 public:
00221 KWDocStructPictureItem(QListViewItem* parent, const QString& text, KWPictureFrameSet* pic);
00222 virtual int ItemType() { return IT_PICTURE; }
00223 virtual void selectItem();
00224 virtual void editItem();
00225 virtual void deleteItem();
00226 virtual void editProperties();
00227 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00228
00229 protected:
00230 KWPictureFrameSet* m_pic;
00231 };
00232
00233
00234
00235
00236
00237 class KWDocStructPartItem : public KWDocListViewItem
00238 {
00239 public:
00240 KWDocStructPartItem(QListViewItem* parent, const QString& text, KWPartFrameSet* part);
00241 virtual int ItemType() { return IT_PART; }
00242 virtual void selectItem();
00243 virtual void editItem();
00244 virtual void deleteItem();
00245 virtual void editProperties();
00246 virtual void contextMenu(QListViewItem* item, const QPoint& p, int);
00247
00248 protected:
00249 KWPartFrameSet* m_part;
00250 };
00251
00252
00253
00254
00255
00256 class KWDocStructRootItem : public KWDocListViewItem
00257 {
00258 public:
00259 KWDocStructRootItem(QListView* parent, const QString& text, TypeStructDocItem type);
00260
00261 virtual int ItemType() { return IT_ROOT; }
00262 void setupArrangement();
00263 void setupTextFrameSets();
00264 void setupTables();
00265 void setupPictures();
00266 void setupEmbedded();
00267 void setupFormulaFrames();
00268 virtual void setOpen(bool o);
00269
00270 protected:
00271 KWDocStructTextFrameSetItem* findTextFrameSetItem(const KWFrameSet* frameset);
00272 KWDocStructTableItem* findTableItem(const KWFrameSet* frameset);
00273
00274 TypeStructDocItem m_type;
00275
00276 };
00277
00278
00279
00280
00281
00282 class KWDocStructTree : public KListView
00283 {
00284 Q_OBJECT
00285
00286 public:
00287 KWDocStructTree( QWidget* parent, KWDocument* doc, KWGUI* gui );
00288 ~KWDocStructTree();
00289
00290 void setup();
00291 void refreshTree(int _type);
00292 QSize minimumSizeHint() const {
00293 return QSize( 0, 0 );
00294 }
00295 void selectItem();
00296 void editItem();
00297 void deleteItem();
00298 void editProperties();
00299 void speakItem();
00300
00301 KWDocument* doc() { return m_doc; };
00302 KWGUI* gui() { return m_gui; };
00303
00304 public slots:
00305 void slotContextMenu(KListView* l, QListViewItem* i, const QPoint& p);
00306 void slotRightButtonClicked(QListViewItem*, const QPoint&, int);
00307 void slotDoubleClicked(QListViewItem* item);
00308 void slotReturnPressed(QListViewItem* item);
00309
00310 protected:
00311 KWDocument* m_doc;
00312 KWGUI* m_gui;
00313
00314 KWDocStructRootItem *arrangement, *tables, *pictures, *textfrms, *embedded, *formulafrms;
00315 };
00316
00317
00318
00319
00320
00321 class KWDocStruct : public QWidget
00322 {
00323 Q_OBJECT
00324
00325 public:
00326 KWDocStruct( QWidget* parent, KWDocument* doc, KWGUI* gui );
00327 void selectItem();
00328 void editItem();
00329 void deleteItem();
00330 void editProperties();
00331 void speakItem();
00334 void refreshTree(int _type);
00336 void setFocusHere();
00337
00338 public slots:
00340 void refreshEntireTree();
00341
00342 protected:
00343 KWDocStructTree* m_tree;
00344 QVBoxLayout* m_layout;
00345
00346 virtual void paintEvent(QPaintEvent* ev);
00347
00348 KWDocument* m_doc;
00349 KWGUI* m_gui;
00350 int dirtyTreeTypes;
00351 };
00352
00353 #endif