kaboutdata.h
00001 /* 00002 * This file is part of the KDE Libraries 00003 * Copyright (C) 2000 Espen Sand (espen@kde.org) 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU Library General Public 00007 * License as published by the Free Software Foundation; either 00008 * version 2 of the License, or (at your option) any later version. 00009 * 00010 * This library is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Library General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Library General Public License 00016 * along with this library; see the file COPYING.LIB. If not, write to 00017 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00018 * Boston, MA 02110-1301, USA. 00019 * 00020 */ 00021 00022 #include <tqvaluelist.h> 00023 #include <tqstring.h> 00024 #include <tqimage.h> 00025 #include <klocale.h> 00026 00027 #ifndef _KABOUTDATA_H_ 00028 #define _KABOUTDATA_H_ 00029 00030 class KAboutPersonPrivate; 00031 class KAboutDataPrivate; 00032 00054 class KDECORE_EXPORT KAboutPerson 00055 { 00056 public: 00070 KAboutPerson( const char *name, const char *task, 00071 const char *emailAddress, const char *webAddress ) 00072 { 00073 mName = name; 00074 mTask = task; 00075 mEmailAddress = emailAddress; 00076 mWebAddress = webAddress; 00077 } 00082 KAboutPerson() {} 00083 00089 TQString name() const; 00090 00096 TQString task() const; 00097 00103 TQString emailAddress() const; 00104 00110 TQString webAddress() const; 00111 00112 private: 00113 const char *mName; 00114 const char *mTask; 00115 const char *mEmailAddress; 00116 const char *mWebAddress; 00117 00118 KAboutPersonPrivate *d; 00119 }; 00120 00121 class KAboutTranslatorPrivate; 00134 class KDECORE_EXPORT KAboutTranslator 00135 { 00136 public: 00144 KAboutTranslator(const TQString & name=TQString::null, 00145 const TQString & emailAddress=TQString::null); 00146 00152 TQString name() const; 00153 00159 TQString emailAddress() const; 00160 00161 private: 00162 TQString mName; 00163 TQString mEmail; 00164 KAboutTranslatorPrivate* d; 00165 }; 00166 00167 00182 class KDECORE_EXPORT KAboutData 00183 { 00184 public: 00188 enum LicenseKey 00189 { 00190 License_Custom = -2, 00191 License_File = -1, 00192 License_Unknown = 0, 00193 License_GPL = 1, 00194 License_GPL_V2 = 1, 00195 License_LGPL = 2, 00196 License_LGPL_V2 = 2, 00197 License_BSD = 3, 00198 License_Artistic = 4, 00199 License_QPL = 5, 00200 License_QPL_V1_0 = 5, 00201 License_GPL_V3 = 6, 00202 License_LGPL_V3 = 7 00203 }; 00204 00205 public: 00240 KAboutData( const char *appName, 00241 const char *programName, 00242 const char *version, 00243 const char *shortDescription = 0, 00244 int licenseType = License_Unknown, 00245 const char *copyrightStatement = 0, 00246 const char *text = 0, 00247 const char *homePageAddress = 0, 00248 const char *bugsEmailAddress = 0 00249 ); 00250 00251 ~KAboutData(); 00252 00272 void addAuthor( const char *name, 00273 const char *task=0, 00274 const char *emailAddress=0, 00275 const char *webAddress=0 ); 00276 00296 void addCredit( const char *name, 00297 const char *task=0, 00298 const char *emailAddress=0, 00299 const char *webAddress=0 ); 00300 00325 void setTranslator(const char* name, const char* emailAddress); 00326 00342 void setLicenseText( const char *license ); 00343 00349 void setLicenseTextFile( const TQString &file ); 00350 00356 void setAppName( const char *appName ); 00357 00366 void setProgramName( const char* programName ); 00367 00377 void setProgramLogo(const TQImage& image); 00378 00384 void setVersion( const char* version ); 00385 00393 void setShortDescription( const char *shortDescription ); 00394 00400 void setLicense( LicenseKey licenseKey); 00401 00410 void setCopyrightStatement( const char *copyrightStatement ); 00411 00419 void setOtherText( const char *otherText ); 00420 00428 void setHomepage( const char *homepage ); 00429 00436 void setBugAddress( const char *bugAddress ); 00437 00446 void setProductName( const char *name ); 00447 00452 const char *appName() const; 00453 00461 const char *productName() const; 00462 00467 TQString programName() const; 00468 00472 const char* internalProgramName() const; 00476 void translateInternalProgramName() const; 00477 00484 TQImage programLogo() const; 00485 00490 TQString version() const; 00491 00495 const char* internalVersion() const { return mVersion; } 00496 00502 TQString shortDescription() const; 00503 00509 TQString homepage() const; 00510 00515 TQString bugAddress() const; 00516 00520 const char* internalBugAddress() const { return mBugEmailAddress; } 00521 00526 const TQValueList<KAboutPerson> authors() const; 00527 00532 const TQValueList<KAboutPerson> credits() const; 00533 00538 const TQValueList<KAboutTranslator> translators() const; 00539 00544 static TQString aboutTranslationTeam(); 00545 00550 TQString otherText() const; 00551 00559 TQString license() const; 00560 00565 TQString copyrightStatement() const; 00566 00574 TQString customAuthorPlainText() const; 00575 00583 TQString customAuthorRichText() const; 00584 00592 bool customAuthorTextEnabled() const; 00593 00604 void setCustomAuthorText(const TQString &plainText, const TQString &richText); 00605 00611 void unsetCustomAuthorText(); 00612 00613 private: 00614 const char *mAppName; 00615 const char *mProgramName; 00616 const char *mVersion; 00617 const char *mShortDescription; 00618 int mLicenseKey; 00619 const char *mCopyrightStatement; 00620 const char *mOtherText; 00621 const char *mHomepageAddress; 00622 const char *mBugEmailAddress; 00623 TQValueList<KAboutPerson> mAuthorList; 00624 TQValueList<KAboutPerson> mCreditList; 00625 const char *mLicenseText; 00626 static const char *defaultBugTracker; 00627 00628 KAboutDataPrivate *d; 00629 }; 00630 00631 #endif 00632