treecombobox.h
00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (c) 2001 Michael Goffioul <tdeprint@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 <tqlistbox.h> 00024 #include <tqcombobox.h> 00025 #include <tqstringlist.h> 00026 00030 class TreeListBoxItem : public TQListBoxPixmap 00031 { 00032 public: 00033 TreeListBoxItem(TQListBox *lb, const TQPixmap& pix, const TQString& txt, bool oneBlock = false); 00034 00035 virtual int width(const TQListBox *lb) const; 00036 00037 protected: 00038 virtual void paint(TQPainter *p); 00039 int stepSize() const { return 16; } 00040 00041 private: 00042 TQStringList m_path; 00043 int m_depth; 00044 TreeListBoxItem *m_child, *m_next, *m_parent; 00045 }; 00046 00050 class TreeListBox : public TQListBox 00051 { 00052 friend class TreeListBoxItem; 00053 public: 00054 TreeListBox(TQWidget *parent = 0, const char *name = 0); 00055 00056 protected: 00057 virtual void paintCell(TQPainter *p, int row, int col); 00058 00059 private: 00060 bool m_painting; 00061 }; 00062 00066 class TreeComboBox : public TQComboBox 00067 { 00068 public: 00069 TreeComboBox(TQWidget *parent = 0, const char *name = 0); 00070 void insertItem(const TQPixmap& pix, const TQString& txt, bool oneBlock = false); 00071 00072 private: 00073 TQListBox *m_listbox; 00074 }; 00075 00076 #endif