sidepane.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KONTACT_SIDEPANE_H
00020 #define KONTACT_SIDEPANE_H
00021
00022 #include "sidepanebase.h"
00023
00024 #include <qguardedptr.h>
00025 #include <qptrlist.h>
00026 #include <qpushbutton.h>
00027 #include <qvaluelist.h>
00028 #include <qvbox.h>
00029
00030 class QWidgetStack;
00031 class QLabel;
00032
00033 namespace Kontact
00034 {
00035
00036 class Core;
00037 class Plugin;
00038
00040
00042
00043
00044 class PanelButton : public QPushButton
00045 {
00046 Q_OBJECT
00047 public:
00048 PanelButton(Kontact::Plugin *plugin, int id, QWidget *parent, const char* name = 0);
00049
00050 ~PanelButton() {}
00051
00052 bool isActive() const { return mActive; }
00053
00054 void setActive();
00055 void setInactive();
00056
00057 int id() const { return mId; }
00058
00059 Kontact::Plugin *plugin() const { return mPlugin; }
00060
00061 signals:
00062 void clicked( PanelButton *pb );
00063 void showPart( Kontact::Plugin* plugin );
00064
00065 public slots:
00066 void slotClicked();
00067
00068 protected:
00069 virtual void setPixmap(const QPixmap&);
00070 virtual void setText(const QString&);
00071 virtual void drawButtonLabel(QPainter *p);
00072 void composeLabel(QPainter *p);
00073
00074 private:
00075 Kontact::Plugin *mPlugin;
00076 QPixmap mPix;
00077 QString mText;
00078 bool mActive;
00079 bool mId;
00080 };
00081
00083
00084 class SidePane : public SidePaneBase
00085 {
00086 Q_OBJECT
00087 public:
00088 SidePane( Core* core, QWidget *parent, const char* name = 0 );
00089 ~SidePane();
00090
00091 public slots:
00092 void switchItems(PanelButton* pb);
00093
00094 void updatePlugins();
00095 void selectPlugin( Kontact::Plugin* );
00096 void selectPlugin( const QString &pluginName );
00097
00098 protected slots:
00099 void switchSidePaneWidget( Kontact::Plugin * );
00100
00101 private:
00102 QWidgetStack* mContentStack;
00103 QLabel* mHeaderWidget;
00104 QPtrList<PanelButton> mButtonList;
00105 QValueList<QGuardedPtr<QWidget> > mContentList;
00106 };
00107
00108 }
00109
00110 #endif
This file is part of the documentation for kontact Library Version 3.2.2.