akregator/src

actionmanagerimpl.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_ACTIONMANAGERIMPL_H
00026 #define AKREGATOR_ACTIONMANAGERIMPL_H
00027 
00028 #include "actionmanager.h"
00029 
00030 class TQStringList;
00031 class TQWidget;
00032 class KAction;
00033 class KActionMenu;
00034 class KActionCollection;
00035 
00036 namespace Akregator {
00037 
00038 class ArticleListView;
00039 class ArticleViewer;
00040 class ListTabWidget;
00041 class Part;
00042 class TrayIcon;
00043 class Tag;
00044 class TagSet;
00045 class TreeNode;
00046 class View;
00047 class TabWidget;
00048 
00050 class ActionManagerImpl : public ActionManager
00051 {
00052     Q_OBJECT
00053   TQ_OBJECT
00054 
00055     public:
00056         ActionManagerImpl(Part* part, TQObject* parent=0, const char* name=0);
00057         virtual ~ActionManagerImpl();
00058 
00059         virtual KAction* action(const char* name, const char* classname=0);
00060         virtual TQWidget* container(const char* name);
00061 
00062         void initView(View* view);
00063         void initTrayIcon(TrayIcon* trayIcon);
00064         void initArticleViewer(ArticleViewer* articleViewer);
00065         void initArticleListView(ArticleListView* articleList);
00066         void initListTabWidget(ListTabWidget* listTabWidget);
00067         void initTabWidget(TabWidget* tabWidget);
00068         void setTagSet(TagSet* tagSet);
00069 
00070     public slots:
00071 
00074         void slotUpdateTagActions(bool enabled, const TQStringList& tagIds);
00075         
00076         void slotNodeSelected(TreeNode* node);
00077         
00078         void slotTagAdded(const Tag& tag);
00079         void slotTagRemoved(const Tag& tag);
00080         
00081     protected:
00082     
00083         KActionCollection* actionCollection();
00084         
00085     private:
00086 
00087         void initPart();
00088 
00089         friend class NodeSelectVisitor;
00090         class NodeSelectVisitor;
00091         
00092         class ActionManagerImplPrivate;
00093         ActionManagerImplPrivate* d;
00094 };
00095 
00096 } // namespace Akregator
00097 
00098 #endif // AKREGATOR_ACTIONMANAGERIMPL_H