# Source: kglobal.h |
Annotated List
Files
Globals
Hierarchy
Index

    /* This file is part of the KDE libraries
       Copyright (C) 1999 Sirtaj Singh Kanq <taj@kde.org>

       This library is free software; you can redistribute it and/or
       modify it under the terms of the GNU Library General Public
       License version 2 as published by the Free Software Foundation.

       This library is distributed in the hope that it will be useful,
       but WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       Library General Public License for more details.

       You should have received a copy of the GNU Library General Public License
       along with this library; see the file COPYING.LIB.  If not, write to
       the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       Boston, MA 02111-1307, USA.
    */
    #ifndef _KGLOBAL_H
    #define _KGLOBAL_H

    #include <qstring.h>

    class KStandardDirs;
    class KConfig;
    class KLocale;
    class KIconLoader;
    class KCharsets;
    class QFont;
    class KInstance;
    class KStringDict;
    class KStaticDeleterBase;
    class KStaticDeleterList;

    /**
     * Access the KDE global objects.
     *
     * @author Sirtaj Singh Kang (taj@kde.org)
     * @version $Id: kglobal.h,v 1.34 2000/11/01 13:01:38 coolo Exp $
     */
    class KGlobal
    {
    public:

        /**
         * Retrieve the global instance.  There is always at least
         * one instance of a component in one application (in most
         * cases the application itself).
         */
        static KInstance            *instance();

        /**
         *  Retrieve the application standard dirs object.
         */
        static KStandardDirs	*dirs();

        /**
         *  Retrieve the general config object.
         */
        static KConfig		*config();

        /**
         *  Retrieve an iconloader object.
         */
        static KIconLoader	        *iconLoader();

        static KLocale              *locale();
        static KCharsets	        *charsets();

        /**
         * Create a static QString
         *
         * To be used inside functions(!) like:
         * static const QString &myString = KGlobal::staticQString("myText");
         *
         * !!! Do _NOT_ use: !!!
         * static QString myString = KGlobal::staticQString("myText");
         * This creates a static object (instead of a static reference)
         * and as you know static objects are EVIL.
         */
        static const QString        &staticQString(const char *);

        /**
         * Create a static QString
         *
         * To be used inside functions(!) like:
         * static const QString &myString = KGlobal::staticQString(i18n("My Text"));
         *
         * !!! Do _NOT_ use: !!!
         * static QString myString = KGlobal::staticQString(i18n("myText"));
         * This creates a static object (instead of a static reference)
         * and as you know static objects are EVIL.
         */
        static const QString        &staticQString(const QString &);

        static void registerStaticDeleter(KStaticDeleterBase *);
        static void unregisterStaticDeleter(KStaticDeleterBase *);

        static void deleteStaticDeleters();

        //private:
        static  KStringDict         *_stringDict;
        static  KInstance           *_instance;
        static  KLocale             *_locale;
        static  KCharsets	        *_charsets;
        static  KStaticDeleterList  *_staticDeleters;

        /**
         * The instance currently active (useful in a multi-instance
         * application, such as a KParts application).
         * Don't use this - it's mainly for KAboutDialog and KBugReport.
         */
        static  KInstance           *_activeInstance;
    };

    /**
     * A typesafe function to find the minimum of the two arguments.
     */
    #define KMIN(a,b)	kMin(a,b)

    /**
     * A typesafe function to find the maximum of the two arguments.
     */
    #define KMAX(a,b)	kMax(a,b)

    template<class T>
    inline const T& kMin (const T& a, const T& b) { return a < b ? a : b; }

    template<class T>
    inline const T& kMax (const T& a, const T& b) { return a > b ? a : b; }

    /**
     * @libdoc The KDE Core Functionality Library
     *
     * All KDE programs use this library to provide basic functionality such
     * as the configuration system, IPC, internationalization and locale
     * support, site-independent access to the filesystem and a large number
     * of other (but no less important) things.
     *
     * All KDE applications should link to the kdecore library. Also, using a
     * @ref KApplication derived class instead of @ref QApplication is almost
     * mandatory if you expect your application to behave nicely within the
     * KDE environment.
     */

    #endif // _KGLOBAL_H

Generated by: root@sparc.ports.openbsd.org on Wed May 2 09:34:58 2001, using kdoc 2.0a53.