/* knstatusfilter.h KNode, the KDE newsreader Copyright (c) 1999-2001 the KNode authors. See file AUTHORS for details This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US */ #ifndef KNSTATUSFILTER_H #define KNSTATUSFILTER_H #include #include #include class TQCheckBox; class KSimpleConfig; class KNRemoteArticle; class KNStatusFilter { friend class KNStatusFilterWidget; public: KNStatusFilter(); ~KNStatusFilter(); KNStatusFilter& operator=(const KNStatusFilter &sf) { for(int i=0; i<8; i++) data.setBit(i, sf.data.at(i)); return (*this); } void load(KSimpleConfig *conf); void save(KSimpleConfig *conf); bool doFilter(KNRemoteArticle *a); protected: TQBitArray data; }; //================================================================================= class KNStatusFilterWidget : public TQButtonGroup { Q_OBJECT public: KNStatusFilterWidget(TQWidget *parent); ~KNStatusFilterWidget(); KNStatusFilter filter(); void setFilter(KNStatusFilter &f); void clear(); protected: class TFCombo : public TQComboBox { public: TFCombo(TQWidget *parent); ~TFCombo(); void setValue(bool b) { if(b) setCurrentItem(0); else setCurrentItem(1); } bool value() const { return (currentItem()==0); } }; TQCheckBox *enR, *enN, *enUS, *enNS; TFCombo *rCom, *nCom, *usCom, *nsCom; protected slots: void slotEnabled(int c); }; #define EN_R 0 #define EN_N 1 #define EN_US 2 #define EN_NS 3 #define DAT_R 4 #define DAT_N 5 #define DAT_US 6 #define DAT_NS 7 #endif