kdeui Library API Documentation

kaboutdialog.h

00001 /* 00002 * This file is part of the KDE Libraries 00003 * Copyright (C) 1999-2001 Mirko Boehm (mirko@kde.org) and 00004 * Espen Sand (espen@kde.org) 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2 of the License, or (at your option) any later version. 00010 * 00011 * This library 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 GNU 00014 * Library General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Library General Public License 00017 * along with this library; see the file COPYING.LIB. If not, write to 00018 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00019 * Boston, MA 02111-1307, USA. 00020 * 00021 */ 00022 00023 /* 00024 * This file declares a class for creating "About ..." dialogs 00025 * in a general way. It provides geometry management and some 00026 * options to connect for, like emailing the author or maintainer. 00027 */ 00028 00029 00030 #ifndef _KABOUTDIALOG_H_ 00031 #define _KABOUTDIALOG_H_ 00032 00033 #include <kdialogbase.h> 00034 #include <qstring.h> 00035 00036 class QFrame; 00037 class QLabel; 00038 class QVBoxLayout; 00039 class QTabWidget; 00040 class KURLLabel; 00041 class KAboutContainer; 00042 class KAboutContainerBase; 00043 00044 class KAboutWidgetPrivate; 00045 00046 class KAboutContainerPrivate; 00050 class KAboutContainer : public QFrame 00051 { 00052 Q_OBJECT 00053 00054 public: 00055 KAboutContainer( QWidget *parent=0, const char *name=0, 00056 int margin=0, int spacing=0, 00057 int childAlignment = AlignCenter, 00058 int innerAlignment = AlignCenter ); 00059 00060 void addWidget( QWidget *widget ); 00061 void addPerson( const QString &name, const QString &email, 00062 const QString &url, const QString &task, 00063 bool showHeader = false, bool showframe = false, 00064 bool showBold = false ); 00065 void addTitle( const QString &title, int alignment=AlignLeft, 00066 bool showframe = false, bool showBold = false ); 00067 void addImage( const QString &fileName, int alignment=AlignLeft ); 00068 00069 virtual QSize sizeHint( void ) const; 00070 virtual QSize minimumSizeHint( void ) const; 00071 00072 protected: 00073 virtual void childEvent( QChildEvent *e ); 00074 00075 signals: 00076 void urlClick( const QString &url ); 00077 void mailClick( const QString &name, const QString &address ); 00078 00079 00080 private: 00081 QVBoxLayout *mVbox; 00082 int mAlignment; 00083 KAboutContainerPrivate *d; 00084 }; 00085 00086 class KAboutContributorPrivate; 00087 00092 class KAboutContributor : public QFrame 00093 { 00094 Q_OBJECT 00095 00096 public: 00097 KAboutContributor( QWidget *parent=0, const char *name=0, 00098 const QString &username=QString::null, 00099 const QString &email=QString::null, 00100 const QString &url=QString::null, 00101 const QString &work=QString::null, 00102 bool showHeader=false, bool showFrame=true, 00103 bool showBold=false ); 00104 00105 void setName( const QString &text, const QString &header=QString::null, 00106 bool update = true ); 00107 void setEmail( const QString &text, const QString &header=QString::null, 00108 bool update = true ); 00109 void setURL( const QString &text, const QString &header=QString::null, 00110 bool update = true ); 00111 void setWork( const QString &text, const QString &header=QString::null, 00112 bool update = true ); 00113 QString getName( void ) const; 00114 QString getEmail( void ) const; 00115 QString getURL( void ) const; 00116 QString getWork( void ) const; 00117 00118 virtual QSize sizeHint( void ) const; 00119 00120 protected: 00121 virtual void fontChange( const QFont &oldFont ); 00122 00123 protected slots: 00124 void urlClickedSlot( const QString& ); 00125 void emailClickedSlot( const QString& emailaddress ); 00126 00127 private: 00128 void updateLayout( void ); 00129 00130 signals: 00131 void sendEmail(const QString& name, const QString& email); 00132 void openURL(const QString& url); 00133 00134 private: 00135 QLabel *mLabel[4]; 00136 QLabel *mText[4]; 00137 bool mShowHeader; 00138 bool mShowBold; 00139 00140 KAboutContributorPrivate *d; 00141 00142 virtual void setName(const char *_name) { QFrame::setName(_name); } 00143 }; 00144 00150 class KAboutWidget : public QWidget 00151 { 00152 Q_OBJECT 00153 00154 public: 00155 00159 KAboutWidget(QWidget* parent=0, const char* name=0 ); 00160 00165 void adjust(); 00166 00170 void setLogo(const QPixmap&); 00174 void setAuthor(const QString& name, const QString& email, 00175 const QString& url, const QString& work); 00179 void setMaintainer(const QString& name, const QString& email, 00180 const QString& url, const QString& work); 00184 void addContributor(const QString& name, const QString& email, 00185 const QString& url, const QString& work); 00189 void setVersion(const QString& name); 00190 // ------------------------------------------------------------------------- 00191 protected slots: 00195 void sendEmailSlot(const QString& name, const QString& email); 00199 void openURLSlot(const QString& url); 00200 // ------------------------------------------------------------------------- 00201 signals: 00205 void sendEmail(const QString& name, const QString& email); 00209 void openURL(const QString& url); 00210 // ------------------------------------------------------------------------- 00211 protected: 00212 // events: 00216 void resizeEvent(QResizeEvent*); 00220 QLabel *version; 00224 QLabel *cont; 00228 QLabel *logo; 00232 KAboutContributor *author; 00236 KAboutContributor *maintainer; 00240 bool showMaintainer; 00244 QPtrList<KAboutContributor> contributors; 00245 // ######################################################################### 00246 // 00247 private: 00248 KAboutWidgetPrivate *d; 00249 }; 00250 00251 class KAboutDialogPrivate; 00283 class KAboutDialog : public KDialogBase 00284 { 00285 Q_OBJECT 00286 00287 public: 00291 enum LayoutType 00292 { 00293 AbtPlain = 0x0001, 00294 AbtTabbed = 0x0002, 00295 AbtTitle = 0x0004, 00296 AbtImageLeft = 0x0008, 00297 AbtImageRight = 0x0010, 00298 AbtImageOnly = 0x0020, 00299 AbtProduct = 0x0040, 00300 AbtKDEStandard = AbtTabbed|AbtTitle|AbtImageLeft, 00301 AbtAppStandard = AbtTabbed|AbtTitle|AbtProduct, 00302 AbtImageAndTitle = AbtPlain|AbtTitle|AbtImageOnly 00303 }; 00304 00305 public: 00314 KAboutDialog( QWidget *parent=0, const char *name=0, bool modal=true ); 00315 00341 KAboutDialog( int dialogLayout, const QString &caption, int buttonMask, 00342 ButtonCode defaultButton, QWidget *parent=0, 00343 const char *name=0, bool modal=false, bool separator = false, 00344 const QString &user1 = QString::null, 00345 const QString &user2 = QString::null, 00346 const QString &user3 = QString::null ); 00347 00355 void adjust(); 00356 00364 virtual void show( void ); 00365 00374 virtual void show( QWidget *centerParent ); 00375 00382 void setTitle( const QString &title ); 00383 00391 void setImage( const QString &fileName ); 00392 00401 void setImageBackgroundColor( const QColor &color ); 00402 00410 void setImageFrame( bool state ); 00411 00423 void setProduct( const QString &appName, const QString &version, 00424 const QString &author, const QString &year ); 00425 00438 QFrame *addTextPage( const QString &title, const QString &text, 00439 bool richText=false, int numLines=10 ); 00440 00451 QFrame *addLicensePage( const QString &title, const QString &text, 00452 int numLines=10 ); 00453 00466 KAboutContainer *addContainerPage( const QString &title, 00467 int childAlignment = AlignCenter, int innerAlignment = AlignCenter ); 00468 00481 KAboutContainer *addScrolledContainerPage( const QString &title, 00482 int childAlignment = AlignCenter, int innerAlignment = AlignCenter ); 00483 00494 KAboutContainer *addContainer( int childAlignment, int innerAlignment ); 00495 00503 QFrame *addPage( const QString &title ); 00504 00505 00510 void setLogo(const QPixmap&); 00511 00516 void setAuthor(const QString& name, const QString& email, 00517 const QString& url, const QString& work); 00518 00523 void setMaintainer(const QString& name, const QString& email, 00524 const QString& url, const QString& work); 00525 00530 void addContributor(const QString& name, const QString& email, 00531 const QString& url, const QString& work); 00532 00537 void setVersion(const QString& name); 00538 00543 static void imageURL( QWidget *parent, const QString &caption, 00544 const QString &path, const QColor &imageColor, 00545 const QString &url ); 00546 00547 signals: 00554 void sendEmail(const QString& name, const QString& email); 00555 00559 void openURL(const QString& url); 00560 // ---------------------------------------------------------------------------- 00561 protected: 00565 KAboutWidget * about; 00566 00570 KAboutContainerBase *mContainerBase; 00571 00572 // ------------------------------------------------------------------------- 00573 protected slots: 00574 00578 void sendEmailSlot(const QString& name, const QString& email); 00579 00583 void openURLSlot(const QString& url); 00584 00590 virtual void mouseTrackSlot( int mode, const QMouseEvent *e ); 00591 00592 // ######################################################################### 00593 protected: 00594 virtual void virtual_hook( int id, void* data ); 00595 private: 00596 KAboutDialogPrivate *d; 00597 }; 00598 00599 #endif // defined KABOUTDIALOG_H
KDE Logo
This file is part of the documentation for kdeui Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Mon Aug 30 22:53:54 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003