libtdepim

kwidgetlister.h
00001 /*  -*- c++ -*-
00002     kwidgetlister.h
00003 
00004     This file is part of libtdenetwork.
00005     Copyright (c) 2001 Marc Mutz <mutz@kde.org>
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU General Public License,
00009     version 2, as published by the Free Software Foundation.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this library; if not, write to the Free Software
00018     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00019 
00020     In addition, as a special exception, the copyright holders give
00021     permission to link the code of this library with any edition of
00022     the TQt library by Trolltech AS, Norway (or with modified versions
00023     of TQt that use the same license as TQt), and distribute linked
00024     combinations including the two.  You must obey the GNU General
00025     Public License in all respects for all of the code used other than
00026     TQt.  If you modify this file, you may extend this exception to
00027     your version of the file, but you are not obligated to do so.  If
00028     you do not wish to do so, delete this exception statement from
00029     your version.
00030 */
00031 
00032 #ifndef _KWIDGETLISTER_H_
00033 #define _KWIDGETLISTER_H_
00034 
00035 #include <tqwidget.h>
00036 #include <tqptrlist.h>
00037 #include <tdepimmacros.h>
00038 
00039 class TQPushButton;
00040 class TQVBoxLayout;
00041 class TQHBox;
00042 
00065 class KDE_EXPORT KWidgetLister : public TQWidget
00066 {
00067   Q_OBJECT
00068   
00069 public:
00070   KWidgetLister( int minWidgets=1, int maxWidgets=8, TQWidget* parent=0, const char* name=0 );
00071   virtual ~KWidgetLister();
00072 
00073 protected slots:
00079   virtual void slotMore();
00085   virtual void slotFewer();
00091   virtual void slotClear();
00092 
00093 
00094 
00095 protected:
00104   virtual void addWidgetAtEnd(TQWidget *w =0);
00112   virtual void removeLastWidget();
00115   virtual void clearWidget( TQWidget* );
00120   virtual TQWidget* createWidget( TQWidget *parent );
00124   virtual void setNumberOfShownWidgetsTo( int aNum );
00128   TQPtrList<TQWidget> mWidgetList;
00130   int mMinWidgets;
00132   int mMaxWidgets;
00133 
00134 signals:
00136   void widgetAdded();
00138   void widgetAdded(TQWidget *);
00140   void widgetRemoved();
00142   void clearWidgets();
00143 
00144 private:
00145   void enableControls();
00146 
00147   TQPushButton *mBtnMore, *mBtnFewer, *mBtnClear;
00148   TQVBoxLayout *mLayout;
00149   TQHBox       *mButtonBox;
00150 };
00151 
00152 
00153 
00154 #endif /* _KWIDGETLISTER_H_ */