akregator/src

listtabwidget.h

00001 /*
00002     This file is part of Akregator.
00003 
00004     Copyright (C) 2005 Frank Osterfeld <frank.osterfeld at kdemail.net>
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or
00009     (at your option) any later version.
00010 
00011     This program 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
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00019 
00020     As a special exception, permission is given to link this program
00021     with any edition of TQt, and distribute the resulting executable,
00022     without including the source code for TQt in the source distribution.
00023 */
00024 
00025 #ifndef AKREGATOR_LISTTABWIDGET_H
00026 #define AKREGATOR_LISTTABWIDGET_H
00027 
00028 #include <tqwidget.h>
00029 
00030 class TQIconSet;
00031 class TQPixmap;
00032 class TQString;
00033 
00034 namespace Akregator {
00035 
00036 class NodeListView;
00037 class TreeNode;
00038 
00045 class ListTabWidget : public TQWidget
00046 {
00047 
00048 Q_OBJECT
00049   
00050 
00051 public:
00052 
00053     ListTabWidget(TQWidget* parent=0, const char* name=0);
00054     virtual ~ListTabWidget();
00055 
00056     enum ViewMode { single, /* horizontalTabs, */  verticalTabs };
00057 
00058     void setViewMode(ViewMode mode);
00059     ViewMode viewMode() const;
00060 
00061     void addView(NodeListView* view, const TQString& caption, const TQPixmap& icon);
00062 
00063     NodeListView* activeView() const;
00064 
00065 public slots:
00066     
00068     void slotItemUp();
00070     void slotItemDown();
00072     void slotItemBegin();
00074     void slotItemEnd();
00076     void slotItemLeft();
00078     void slotItemRight();
00079 
00080     void slotPrevFeed();
00081     void slotNextFeed();
00082     void slotPrevUnreadFeed();
00083     void slotNextUnreadFeed();
00084 
00085 signals:
00086     void signalNodeSelected(TreeNode*);
00087 
00088 protected slots:
00089 
00090     void slotRootNodeChanged(NodeListView*, TreeNode*);
00091     void slotTabClicked(int id);
00092  
00093 private:
00094     class ListTabWidgetPrivate;
00095     ListTabWidgetPrivate* d;
00096 };
00097 
00098 } // namespace Akregator
00099 
00100 #endif // AKREGATOR_LISTTABWIDGET_H