treecombobox.h

00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be>
00004  *
00005  *  This library is free software; you can redistribute it and/or
00006  *  modify it under the terms of the GNU Library General Public
00007  *  License version 2 as published by the Free Software Foundation.
00008  *
00009  *  This library is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this library; see the file COPYING.LIB.  If not, write to
00016  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017  *  Boston, MA 02110-1301, USA.
00018  **/
00019 
00020 #ifndef TREECOMBOBOX_H
00021 #define TREECOMBOBOX_H
00022 
00023 #include <qlistbox.h>
00024 #include <qcombobox.h>
00025 #include <qstringlist.h>
00026 
00030 class TreeListBoxItem : public QListBoxPixmap
00031 {
00032 public:
00033     TreeListBoxItem(QListBox *lb, const QPixmap& pix, const QString& txt, bool oneBlock = false);
00034 
00035     virtual int width(const QListBox *lb) const;
00036 
00037 protected:
00038     virtual void paint(QPainter *p);
00039     int stepSize() const { return 16; }
00040 
00041 private:
00042     QStringList m_path;
00043     int     m_depth;
00044     TreeListBoxItem *m_child, *m_next, *m_parent;
00045 };
00046 
00050 class TreeListBox : public QListBox
00051 {
00052     friend class TreeListBoxItem;
00053 public:
00054     TreeListBox(QWidget *parent = 0, const char *name = 0);
00055 
00056 protected:
00057     virtual void paintCell(QPainter *p, int row, int col);
00058 
00059 private:
00060     bool    m_painting;
00061 };
00062 
00066 class TreeComboBox : public QComboBox
00067 {
00068 public:
00069     TreeComboBox(QWidget *parent = 0, const char *name = 0);
00070     void insertItem(const QPixmap& pix, const QString& txt, bool oneBlock = false);
00071 
00072 private:
00073     QListBox    *m_listbox;
00074 };
00075 
00076 #endif
KDE Home | KDE Accessibility Home | Description of Access Keys