00001
#ifndef LISTCAT_H
00002
#define LISTCAT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
#include <qstringlist.h>
00034
#include <qlistview.h>
00035
00036
#include <klistview.h>
00037
00062 class ListCategorizer :
public KListView
00063 {
00064 Q_OBJECT
00065
00066
public:
00074
ListCategorizer(QWidget *parent,
00075
const char *name = 0);
00083
ListCategorizer(
const QStringList&
categories,
00084
bool startOpen,
00085 QWidget *parent,
00086
const char *name = 0);
00087
00093
void addCategories(
const QStringList&);
00103 QListViewItem *
addCategory(
const QString& name,
00104
const QString& description = QString::null);
00109 QStringList
categories()
const
00110
{
00111
return listSiblings(firstChild());
00112 } ;
00113
00122 QListViewItem *addItem(
const QString& category,
00123
const QString& name,
00124
const QString& description = QString::null);
00133 QStringList
items(
const QString& category,
int column=0)
const
00134
{
00135
return listSiblings(
findCategory(category),column);
00136 }
00137
00144 QListViewItem *findCategory(
const QString& categoryName)
const;
00155 QStringList listSiblings(
const QListViewItem *p,
int column=0)
const;
00156
00163
bool startOpen()
const {
return fStartOpen; } ;
00169
void setStartOpen(
bool b) { fStartOpen=b; } ;
00170
00171
protected:
00175
virtual bool acceptDrag (QDropEvent* event)
const;
00179
virtual void startDrag();
00183
virtual void contentsDropEvent (QDropEvent*);
00184
00185
00186
00187
private:
00192
void setupWidget();
00193
00194
bool fStartOpen:1;
00195 } ;
00196
00197
00198
class RichListViewItem :
public QListViewItem
00199 {
00200
public:
00201 RichListViewItem(QListViewItem *parent,
00202 QString,
00203
int);
00204
virtual ~RichListViewItem();
00205
00206
virtual void paintCell(QPainter *,
00207
const QColorGroup &,
00208
int column,
00209
int width,
00210
int alignment);
00211
00212
virtual void setup();
00213
00214
bool isRich(
int c)
const {
return fIsRich[c]; } ;
00215
void setRich(
int c,
bool b) { fIsRich[c]=b; } ;
00216
00217
protected:
00218
void computeHeight(
int c);
00219
00220
protected:
00221
bool *fIsRich;
00222 QRect *fRect;
00223
int fColumns;
00224
00225 } ;
00226
00227
#endif