author | mickeyl <mickeyl> | 2003-03-28 15:11:52 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-03-28 15:11:52 (UTC) |
commit | 11304d02942e9fa493e4e80943a828f9c65f6772 (patch) (unidiff) | |
tree | a0223c10c067e1afc70d15c2b82be3f3c15e41ae /libopie2/opieui/oversatileview.h | |
parent | b271d575fa05cf570a1a829136517761bd47e69b (diff) | |
download | opie-11304d02942e9fa493e4e80943a828f9c65f6772.zip opie-11304d02942e9fa493e4e80943a828f9c65f6772.tar.gz opie-11304d02942e9fa493e4e80943a828f9c65f6772.tar.bz2 |
skeleton and the start of libopie2, please read README, ROADMAP and STATUS and comment...
Diffstat (limited to 'libopie2/opieui/oversatileview.h') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opieui/oversatileview.h | 394 |
1 files changed, 394 insertions, 0 deletions
diff --git a/libopie2/opieui/oversatileview.h b/libopie2/opieui/oversatileview.h new file mode 100644 index 0000000..1df8154 --- a/dev/null +++ b/libopie2/opieui/oversatileview.h | |||
@@ -0,0 +1,394 @@ | |||
1 | /* | ||
2 | This file is part of the Opie Project | ||
3 | |||
4 | =. (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> | ||
5 | .=l. | ||
6 | .>+-= | ||
7 | _;:, .> :=|. This program is free software; you can | ||
8 | .> <`_, > . <= redistribute it and/or modify it under | ||
9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | ||
10 | .="- .-=="i, .._ License as published by the Free Software | ||
11 | - . .-<_> .<> Foundation; either version 2 of the License, | ||
12 | ._= =} : or (at your option) any later version. | ||
13 | .%`+i> _;_. | ||
14 | .i_,=:_. -<s. This program is distributed in the hope that | ||
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | ||
16 | : .. .:, . . . without even the implied warranty of | ||
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | ||
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | ||
19 | ..}^=.= = ; Library General Public License for more | ||
20 | ++= -. .` .: details. | ||
21 | : = ...= . :.=- | ||
22 | -. .:....=;==+<; You should have received a copy of the GNU | ||
23 | -_. . . )=. = Library General Public License along with | ||
24 | -- :-=` this library; see the file COPYING.LIB. | ||
25 | If not, write to the Free Software Foundation, | ||
26 | Inc., 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. | ||
28 | |||
29 | */ | ||
30 | |||
31 | #ifndef OVERSATILEVIEW_H | ||
32 | #define OVERSATILEVIEW_H | ||
33 | |||
34 | /* QT */ | ||
35 | |||
36 | #include <qwidgetstack.h> | ||
37 | #include <qiconview.h> | ||
38 | |||
39 | /* OPIE */ | ||
40 | |||
41 | #include <qpe/qpeapplication.h> | ||
42 | |||
43 | /* FORWARDS */ | ||
44 | |||
45 | class QHeader; | ||
46 | class QIconSet; | ||
47 | class QIconViewItem; | ||
48 | class OListView; | ||
49 | class QListViewItem; | ||
50 | class QPopupMenu; | ||
51 | class QString; | ||
52 | |||
53 | #ifndef QT_NO_DRAGANDDROP | ||
54 | class QIconDragItem; | ||
55 | #endif | ||
56 | |||
57 | class OVersatileView : public QWidgetStack | ||
58 | { | ||
59 | Q_OBJECT | ||
60 | |||
61 | friend class OVersatileViewItem; | ||
62 | |||
63 | //==============================================================================================// | ||
64 | // OVersatileView High Level API | ||
65 | //==============================================================================================// | ||
66 | |||
67 | public: | ||
68 | OVersatileView( QWidget* parent = 0, const char* name = 0, int mode = 0 ); | ||
69 | ~OVersatileView(); | ||
70 | |||
71 | QPopupMenu* contextMenu() const; | ||
72 | |||
73 | void setSynchronization( bool sync ); | ||
74 | bool synchronization(); | ||
75 | |||
76 | enum ViewMode { Tree = 0, Icons }; | ||
77 | int viewMode(); | ||
78 | |||
79 | QIconView* iconView() const; | ||
80 | OListView* listView() const; | ||
81 | |||
82 | enum WarningPolicy { None = 0, Warn, WarnReturn }; | ||
83 | |||
84 | void setWarningPolicy( int ) const; // warn, if calling a method which doesn't apply to the current viewmode | ||
85 | bool warningPolicy() const; | ||
86 | |||
87 | void setDefaultPixmaps( int mode, QPixmap& leaf, QPixmap& opened, QPixmap& closed ); | ||
88 | |||
89 | public slots: | ||
90 | void setViewMode( int mode ); | ||
91 | void setIconViewMode(); | ||
92 | void setTreeViewMode(); | ||
93 | |||
94 | protected: | ||
95 | virtual bool isValidViewMode( int mode ) const; | ||
96 | virtual void popupContextMenu( OVersatileViewItem* item, const QPoint& pos, int col = 0 ); | ||
97 | |||
98 | private: | ||
99 | int _viewmode; | ||
100 | bool _synchronization; | ||
101 | mutable int _warningpolicy; | ||
102 | |||
103 | OListView* _listview; | ||
104 | QIconView* _iconview; | ||
105 | |||
106 | QPixmap _treeleaf; | ||
107 | QPixmap _treeopened; | ||
108 | QPixmap _treeclosed; | ||
109 | |||
110 | QPixmap _iconleaf; | ||
111 | QPixmap _iconopened; | ||
112 | QPixmap _iconclosed; | ||
113 | |||
114 | QPopupMenu* _contextmenu; | ||
115 | |||
116 | int _iconstyle; | ||
117 | int _treestyle; | ||
118 | |||
119 | private slots: | ||
120 | |||
121 | void contextMenuRequested( QListViewItem*, const QPoint&, int ); | ||
122 | void contextMenuRequested( QIconViewItem*, const QPoint& ); | ||
123 | |||
124 | // type converting signal forwarders | ||
125 | |||
126 | void selectionChanged( QListViewItem * ); | ||
127 | void currentChanged( QListViewItem * ); | ||
128 | void clicked( QListViewItem * ); | ||
129 | void pressed( QListViewItem * ); | ||
130 | void doubleClicked( QListViewItem * ); | ||
131 | void returnPressed( QListViewItem * ); | ||
132 | void onItem( QListViewItem * ); | ||
133 | |||
134 | void selectionChanged( QIconViewItem * ); | ||
135 | void currentChanged( QIconViewItem * ); | ||
136 | void clicked( QIconViewItem * ); | ||
137 | void pressed( QIconViewItem * ); | ||
138 | void doubleClicked( QIconViewItem * ); | ||
139 | void returnPressed( QIconViewItem * ); | ||
140 | void onItem( QIconViewItem * ); | ||
141 | |||
142 | void expanded( QListViewItem * item ); // QListView | ||
143 | void collapsed( QListViewItem * item ); // QListView | ||
144 | |||
145 | signals: | ||
146 | |||
147 | void contextMenuRequested( OVersatileViewItem * item, const QPoint& pos, int col ); | ||
148 | |||
149 | /*#ifndef QT_NO_DRAGANDDROP | ||
150 | void dropped( QDropEvent *e, const QValueList<QIconDragItem> &lst ); // QIconView | ||
151 | #endif | ||
152 | void itemRenamed( OVersatileViewItem *item, const QString & ); // QIconView | ||
153 | void itemRenamed( OVersatileViewItem *item ); // QIconView | ||
154 | */ | ||
155 | |||
156 | //==============================================================================================// | ||
157 | // "Derived" API - Case 1: Methods existing either only in QListView or only in QIconView | ||
158 | //==============================================================================================// | ||
159 | |||
160 | public: | ||
161 | |||
162 | /* | ||
163 | enum Arrangement { // QIconView | ||
164 | LeftToRight = 0, | ||
165 | TopToBottom | ||
166 | }; | ||
167 | enum ResizeMode { // QIconView | ||
168 | Fixed = 0, | ||
169 | Adjust | ||
170 | }; | ||
171 | enum ItemTextPos { // QIconView | ||
172 | Bottom = 0, | ||
173 | Right | ||
174 | }; | ||
175 | */ | ||
176 | |||
177 | // | ||
178 | // only in QListView | ||
179 | // | ||
180 | |||
181 | int treeStepSize() const; // QListView | ||
182 | virtual void setTreeStepSize( int ); // QListView | ||
183 | |||
184 | QHeader * header() const; // QListView | ||
185 | |||
186 | virtual int addColumn( const QString &label, int size = -1); // QListView | ||
187 | virtual int addColumn( const QIconSet& iconset, const QString &label, int size = -1); // QListView | ||
188 | void removeColumn( int index ); // #### make virtual in next major release! // QListView | ||
189 | virtual void setColumnText( int column, const QString &label ); // QListView | ||
190 | virtual void setColumnText( int column, const QIconSet& iconset, const QString &label ); // QListView | ||
191 | QString columnText( int column ) const; // QListView | ||
192 | virtual void setColumnWidth( int column, int width ); // QListView | ||
193 | int columnWidth( int column ) const; // QListView | ||
194 | enum WidthMode { Manual, Maximum }; // QListView | ||
195 | virtual void setColumnWidthMode( int column, WidthMode ); // QListView | ||
196 | WidthMode columnWidthMode( int column ) const; // QListView | ||
197 | int columns() const; // QListView | ||
198 | |||
199 | virtual void setColumnAlignment( int, int ); // QListView | ||
200 | int columnAlignment( int ) const; // QListView | ||
201 | |||
202 | OVersatileViewItem * itemAt( const QPoint & screenPos ) const; // QListView | ||
203 | QRect itemRect( const OVersatileViewItem * ) const; // QListView | ||
204 | int itemPos( const OVersatileViewItem * ); // QListView | ||
205 | |||
206 | bool isSelected( const OVersatileViewItem * ) const; // QListView // also in QIconViewItem but not in QIconView *shrug* | ||
207 | |||
208 | virtual void setMultiSelection( bool enable ); // QListView | ||
209 | bool isMultiSelection() const; // QListView | ||
210 | |||
211 | OVersatileViewItem * selectedItem() const; // QListView | ||
212 | virtual void setOpen( OVersatileViewItem *, bool ); // QListView | ||
213 | bool isOpen( const OVersatileViewItem * ) const; // QListView | ||
214 | |||
215 | OVersatileViewItem * firstChild() const; // QListView | ||
216 | int childCount() const; // QListView | ||
217 | |||
218 | virtual void setAllColumnsShowFocus( bool ); // QListView | ||
219 | bool allColumnsShowFocus() const; // QListView | ||
220 | |||
221 | virtual void setItemMargin( int ); // QListView | ||
222 | int itemMargin() const; // QListView | ||
223 | |||
224 | virtual void setRootIsDecorated( bool ); // QListView | ||
225 | bool rootIsDecorated() const; // QListView | ||
226 | |||
227 | void setShowSortIndicator( bool show ); // QListView | ||
228 | bool showSortIndicator() const; // QListView | ||
229 | |||
230 | int index( const OVersatileViewItem *item ) const; // QIconView | ||
231 | |||
232 | public slots: | ||
233 | void triggerUpdate(); // QListView | ||
234 | |||
235 | signals: | ||
236 | void expanded( OVersatileViewItem *item ); // QListView | ||
237 | void collapsed( OVersatileViewItem *item ); // QListView | ||
238 | |||
239 | // | ||
240 | // only in QIconView | ||
241 | // | ||
242 | |||
243 | public: | ||
244 | uint count() const; // QIconView | ||
245 | |||
246 | OVersatileViewItem *firstItem() const; // QIconView | ||
247 | OVersatileViewItem *lastItem() const; // QIconView | ||
248 | |||
249 | OVersatileViewItem *findItem( const QPoint &pos ) const; // QIconView | ||
250 | OVersatileViewItem *findItem( const QString &text ) const; // QIconView | ||
251 | |||
252 | OVersatileViewItem* findFirstVisibleItem( const QRect &r ) const; // QIconView | ||
253 | OVersatileViewItem* findLastVisibleItem( const QRect &r ) const; // QIconView | ||
254 | |||
255 | virtual void setGridX( int rx ); // QIconView | ||
256 | virtual void setGridY( int ry ); // QIconView | ||
257 | int gridX() const; // QIconView | ||
258 | int gridY() const; // QIconView | ||
259 | virtual void setSpacing( int sp ); // QIconView | ||
260 | int spacing() const; // QIconView | ||
261 | virtual void setItemTextPos( QIconView::ItemTextPos pos ); // QIconView | ||
262 | QIconView::ItemTextPos itemTextPos() const; // QIconView | ||
263 | virtual void setItemTextBackground( const QBrush &b ); // QIconView | ||
264 | QBrush itemTextBackground() const; // QIconView | ||
265 | virtual void setArrangement( QIconView::Arrangement am ); // QIconView | ||
266 | QIconView::Arrangement arrangement() const; // QIconView | ||
267 | virtual void setResizeMode( QIconView::ResizeMode am ); // QIconView | ||
268 | QIconView::ResizeMode resizeMode() const; // QIconView | ||
269 | virtual void setMaxItemWidth( int w ); // QIconView | ||
270 | int maxItemWidth() const; // QIconView | ||
271 | virtual void setMaxItemTextLength( int w ); // QIconView | ||
272 | int maxItemTextLength() const; // QIconView | ||
273 | virtual void setAutoArrange( bool b ); // QIconView | ||
274 | bool autoArrange() const; // QIconView | ||
275 | virtual void setShowToolTips( bool b ); // QIconView | ||
276 | bool showToolTips() const; // QIconView | ||
277 | |||
278 | bool sorting() const; // QIconView | ||
279 | bool sortDirection() const; // QIconView | ||
280 | |||
281 | virtual void setItemsMovable( bool b ); // QIconView | ||
282 | bool itemsMovable() const; // QIconView | ||
283 | virtual void setWordWrapIconText( bool b ); // QIconView | ||
284 | bool wordWrapIconText() const; // QIconView | ||
285 | |||
286 | public slots: | ||
287 | virtual void arrangeItemsInGrid( const QSize &grid, bool update = TRUE ); // QIconView | ||
288 | virtual void arrangeItemsInGrid( bool update = TRUE ); // QIconView | ||
289 | virtual void updateContents(); // QIconView | ||
290 | |||
291 | signals: | ||
292 | /*#ifndef QT_NO_DRAGANDDROP | ||
293 | void dropped( QDropEvent *e, const QValueList<QIconDragItem> &lst ); // QIconView | ||
294 | #endif | ||
295 | */ | ||
296 | void moved(); // QIconView | ||
297 | void itemRenamed( OVersatileViewItem *item, const QString & ); // QIconView | ||
298 | void itemRenamed( OVersatileViewItem *item ); // QIconView | ||
299 | |||
300 | //==============================================================================================// | ||
301 | // "Derived" API - Case 2: Methods existing in QListView and QIconView with the same signatures | ||
302 | //==============================================================================================// | ||
303 | |||
304 | public: | ||
305 | enum SelectionMode { | ||
306 | Single = 0, | ||
307 | Multi, | ||
308 | Extended, | ||
309 | NoSelection | ||
310 | }; | ||
311 | |||
312 | virtual void clear(); | ||
313 | |||
314 | virtual void setFont( const QFont & ); | ||
315 | virtual void setPalette( const QPalette & ); | ||
316 | |||
317 | virtual void takeItem( OVersatileViewItem * ); | ||
318 | |||
319 | void setSelectionMode( SelectionMode mode ); | ||
320 | SelectionMode selectionMode() const; | ||
321 | |||
322 | virtual void selectAll( bool select ); | ||
323 | virtual void clearSelection(); | ||
324 | virtual void invertSelection(); | ||
325 | |||
326 | void ensureItemVisible( const OVersatileViewItem * ); | ||
327 | virtual void repaintItem( const OVersatileViewItem * ) const; | ||
328 | |||
329 | virtual void setCurrentItem( OVersatileViewItem * ); | ||
330 | OVersatileViewItem * currentItem() const; | ||
331 | |||
332 | // bool eventFilter( QObject * o, QEvent * ); // use QWidgetStack implementation | ||
333 | |||
334 | // QSize minimumSizeHint() const; // use QWidgetStack implementation | ||
335 | // QSizePolicy sizePolicy() const; // use QWidgetStack implementation | ||
336 | // QSize sizeHint() const; // use QWidgetStack implementation | ||
337 | |||
338 | signals: | ||
339 | void selectionChanged(); | ||
340 | void selectionChanged( OVersatileViewItem * ); | ||
341 | void currentChanged( OVersatileViewItem * ); | ||
342 | void clicked( OVersatileViewItem * ); | ||
343 | void pressed( OVersatileViewItem * ); | ||
344 | |||
345 | void doubleClicked( OVersatileViewItem * ); | ||
346 | void returnPressed( OVersatileViewItem * ); | ||
347 | |||
348 | void onItem( OVersatileViewItem * ); | ||
349 | void onViewport(); | ||
350 | |||
351 | //==============================================================================================// | ||
352 | // "Derived" API - Case 2: Methods existing in QListView and QIconView with differing signatures | ||
353 | //==============================================================================================// | ||
354 | |||
355 | /* | ||
356 | |||
357 | public: | ||
358 | virtual void insertItem( OVersatileViewItem * ); // QListView | ||
359 | virtual void insertItem( OVersatileViewItem *item, OVersatileViewItem *after = 0L ); // QIconView | ||
360 | |||
361 | virtual void setSelected( OVersatileViewItem *, bool ); // QListView | ||
362 | virtual void setSelected( OVersatileViewItem *item, bool s, bool cb = FALSE ); // QIconView | ||
363 | |||
364 | virtual void setSorting( int column, bool increasing = TRUE ); // QListView | ||
365 | void setSorting( bool sort, bool ascending = TRUE ); // QIconView | ||
366 | |||
367 | void sort(); // #### make virtual in next major release // QListView | ||
368 | virtual void sort( bool ascending = TRUE ); // QIconView | ||
369 | |||
370 | */ | ||
371 | |||
372 | signals: | ||
373 | void clicked( OVersatileViewItem *, const QPoint &, int ); // QListView | ||
374 | void clicked( OVersatileViewItem *, const QPoint & ); // QIconView | ||
375 | |||
376 | void pressed( OVersatileViewItem *, const QPoint &, int ); // QListView | ||
377 | void pressed( OVersatileViewItem *, const QPoint & ); // QIconView | ||
378 | |||
379 | void rightButtonClicked( OVersatileViewItem* item, const QPoint& pos ); // QIconView | ||
380 | void rightButtonClicked( OVersatileViewItem *, const QPoint&, int ); // QListView | ||
381 | |||
382 | void rightButtonPressed( OVersatileViewItem* item, const QPoint& pos ); // QIconView | ||
383 | void rightButtonPressed( OVersatileViewItem *, const QPoint&, int ); // QListView | ||
384 | |||
385 | void mouseButtonPressed( int, OVersatileViewItem *, const QPoint& , int ); // QListView | ||
386 | void mouseButtonPressed( int button, OVersatileViewItem* item, const QPoint& pos ); // QIconView | ||
387 | |||
388 | void mouseButtonClicked( int, OVersatileViewItem *, const QPoint&, int ); // QListView | ||
389 | void mouseButtonClicked( int button, OVersatileViewItem* item, const QPoint& pos ); // QIconView | ||
390 | |||
391 | }; | ||
392 | |||
393 | #endif | ||
394 | |||