kaboutdialog_private.h
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 #ifndef _KABOUTDIALOG_PRIVATE_H_
00024 #define _KABOUTDIALOG_PRIVATE_H_
00025 
00026 #include <qlabel.h>
00027 class QFrame;
00028 class QTabWidget;
00029 class QVBoxLayout;
00030 
00035 class KImageTrackLabel : public QLabel
00036 {
00037   Q_OBJECT
00038 
00039   public:
00040     enum MouseMode
00041     {
00042       MousePress = 1,
00043       MouseRelease,
00044       MouseDoubleClick,
00045       MouseMove
00046     };
00047 
00048   public:
00049     KImageTrackLabel( QWidget * parent, const char * name=0, WFlags f=0 );
00050 
00051   signals:
00052     void mouseTrack( int mode, const QMouseEvent *e );
00053 
00054   protected:
00055     virtual void mousePressEvent( QMouseEvent *e );
00056     virtual void mouseReleaseEvent( QMouseEvent *e );
00057     virtual void mouseDoubleClickEvent( QMouseEvent *e );
00058     virtual void mouseMoveEvent ( QMouseEvent *e );
00059 };
00060 
00061 class KAboutContainer;
00062 
00063 class KAboutContainerBasePrivate;
00064 
00069 class KAboutContainerBase : public QWidget
00070 {
00071   Q_OBJECT
00072 
00073   public:
00074     enum LayoutType
00075     {
00076       AbtPlain         = 0x0001,
00077       AbtTabbed        = 0x0002,
00078       AbtTitle         = 0x0004,
00079       AbtImageLeft     = 0x0008,
00080       AbtImageRight    = 0x0010,
00081       AbtImageOnly     = 0x0020,
00082       AbtProduct       = 0x0040,
00083       AbtKDEStandard   = AbtTabbed|AbtTitle|AbtImageLeft,
00084       AbtAppStandard   = AbtTabbed|AbtTitle|AbtProduct,
00085       AbtImageAndTitle = AbtPlain|AbtTitle|AbtImageOnly
00086     };
00087 
00088   public:
00089     KAboutContainerBase( int layoutType, QWidget *parent = 0, char *name = 0 );
00090     virtual void show( void );
00091     virtual QSize sizeHint( void ) const;
00092 
00093     void setTitle( const QString &title );
00094     void setImage( const QString &fileName );
00095     void setImageBackgroundColor( const QColor &color );
00096     void setImageFrame( bool state );
00097     void setProduct( const QString &appName, const QString &version,
00098              const QString &author, const QString &year );
00099 
00100     QFrame *addTextPage( const QString &title, const QString &text,
00101              bool richText=false, int numLines=10 );
00102     QFrame *addLicensePage( const QString &title, const QString &text,
00103              int numLines=10 );
00104     KAboutContainer *addContainerPage( const QString &title,
00105       int childAlignment = AlignCenter, int innerAlignment = AlignCenter );
00106     KAboutContainer *addScrolledContainerPage( const QString &title,
00107       int childAlignment = AlignCenter, int innerAlignment = AlignCenter );
00108 
00109     QFrame *addEmptyPage( const QString &title );
00110 
00111     KAboutContainer *addContainer( int childAlignment, int innerAlignment );
00112 
00113   public slots:
00114     virtual void slotMouseTrack( int mode, const QMouseEvent *e );
00115     virtual void slotUrlClick( const QString &url );
00116     virtual void slotMailClick( const QString &name, const QString &address );
00117 
00118   protected:
00119     virtual void fontChange( const QFont &oldFont );
00120 
00121   signals:
00122     void mouseTrack( int mode, const QMouseEvent *e );
00123     void urlClick( const QString &url );
00124     void mailClick( const QString &name, const QString &address );
00125 
00126   private:
00127     QMemArray<QWidget*>  mContainerList;
00128 
00129     QVBoxLayout *mTopLayout;
00130     KImageTrackLabel *mImageLabel;
00131     QLabel  *mTitleLabel;
00132     QLabel  *mIconLabel;
00133     QLabel  *mVersionLabel;
00134     QLabel  *mAuthorLabel;
00135     QFrame  *mImageFrame;
00136     QTabWidget *mPageTab;
00137     QFrame  *mPlainSpace;
00138 
00139     KAboutContainerBasePrivate *d;
00140 };
00141 
00142 
00143 #endif
 
This file is part of the documentation for kdeui Library Version 3.2.0.