summaryrefslogtreecommitdiffstats
path: root/tdecore/tdeglobal.h
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-02-15 23:21:33 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-02-15 23:21:33 -0600
commit71abba5631126445560d6ab309a51c28745a0b74 (patch)
treecebdb0db1f78eccd9dae0742734ccaf6d167c028 /tdecore/tdeglobal.h
parented99a30644c19b0a3cf0d2147243532df4daa16b (diff)
downloadtdelibs-71abba5631126445560d6ab309a51c28745a0b74.tar.gz
tdelibs-71abba5631126445560d6ab309a51c28745a0b74.zip
Fix prior commit
Diffstat (limited to 'tdecore/tdeglobal.h')
-rw-r--r--tdecore/tdeglobal.h251
1 files changed, 251 insertions, 0 deletions
diff --git a/tdecore/tdeglobal.h b/tdecore/tdeglobal.h
new file mode 100644
index 000000000..a1a8114be
--- /dev/null
+++ b/tdecore/tdeglobal.h
@@ -0,0 +1,251 @@
+/* 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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+#ifndef _KGLOBAL_H
+#define _KGLOBAL_H
+
+#include "tdelibs_export.h"
+#include <kinstance.h> // KDE4: class TDEInstance is enough here
+
+class KCharsets;
+class TDEConfig;
+class TDESharedConfig;
+class TDEIconLoader;
+class TDEHardwareDevices;
+class TDEGlobalNetworkManager;
+class TDELocale;
+class TDEStandardDirs;
+class KStaticDeleterBase;
+class KStaticDeleterList;
+class KStringDict;
+class TQString;
+
+/**
+ * Access to the KDE global objects.
+ * TDEGlobal provides you with pointers of many central
+ * objects that exist only once in the process. It is also
+ * responsible for managing instances of KStaticDeleterBase.
+ *
+ * @see KStaticDeleterBase
+ * @author Sirtaj Singh Kang (taj@kde.org)
+ */
+class TDECORE_EXPORT TDEGlobal
+{
+public:
+
+ /**
+ * Returns the global instance. There is always at least
+ * one instance of a component in one application (in most
+ * cases the application itself).
+ * @return the global instance
+ */
+ static TDEInstance *instance();
+
+ /**
+ * Returns the application standard dirs object.
+ * @return the global standard dir object
+ */
+ static TDEStandardDirs *dirs();
+
+ /**
+ * Returns the general config object.
+ * @return the global configuration object.
+ */
+ static TDEConfig *config();
+
+ /**
+ * Returns the general config object.
+ * @return the global configuration object.
+ */
+ static TDESharedConfig *sharedConfig();
+
+ /**
+ * Returns an iconloader object.
+ * @return the global iconloader object
+ */
+ static TDEIconLoader *iconLoader();
+
+ /**
+ * Returns a TDEHardwareDevices object.
+ * @return the global hardware devices object
+ */
+ static TDEHardwareDevices *hardwareDevices();
+
+ /**
+ * Returns a TDEGlobalNetworkManager object.
+ * @return the global network manager object
+ */
+ static TDEGlobalNetworkManager *networkManager();
+
+ /**
+ * Returns the global locale object.
+ * @return the global locale object
+ */
+ static TDELocale *locale();
+
+ /**
+ * The global charset manager.
+ * @return the global charset manager
+ */
+ static KCharsets *charsets();
+
+ /**
+ * Creates a static TQString.
+ *
+ * To be used inside functions(!) like:
+ * \code
+ * static const TQString &myString = TDEGlobal::staticQString("myText");
+ * \endcode
+ *
+ * !!! Do _NOT_ use: !!!
+ * \code
+ * static TQString myString = TDEGlobal::staticQString("myText");
+ * \endcode
+ * This creates a static object (instead of a static reference)
+ * and as you know static objects are EVIL.
+ * @param str the string to create
+ * @return the static string
+ */
+ static const TQString &staticQString(const char *str);
+
+ /**
+ * Creates a static TQString.
+ *
+ * To be used inside functions(!) like:
+ * \code
+ * static const TQString &myString = TDEGlobal::staticQString(i18n("My Text"));
+ * \endcode
+ *
+ * !!! Do _NOT_ use: !!!
+ * \code
+ * static TQString myString = TDEGlobal::staticQString(i18n("myText"));
+ * \endcode
+ * This creates a static object (instead of a static reference)
+ * and as you know static objects are EVIL.
+ * @param str the string to create
+ * @return the static string
+ */
+ static const TQString &staticQString(const TQString &str);
+
+ /**
+ * Registers a static deleter.
+ * @param d the static deleter to register
+ * @see KStaticDeleterBase
+ * @see KStaticDeleter
+ */
+ static void registerStaticDeleter(KStaticDeleterBase *d);
+
+ /**
+ * Unregisters a static deleter.
+ * @param d the static deleter to unregister
+ * @see KStaticDeleterBase
+ * @see KStaticDeleter
+ */
+ static void unregisterStaticDeleter(KStaticDeleterBase *d);
+
+ /**
+ * Calls KStaticDeleterBase::destructObject() on all
+ * registered static deleters and unregisters them all.
+ * @see KStaticDeleterBase
+ * @see KStaticDeleter
+ */
+ static void deleteStaticDeleters();
+
+ //private:
+ static KStringDict *_stringDict;
+ static TDEInstance *_instance;
+ static TDELocale *_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 TDEAboutDialog and KBugReport.
+ * @internal
+ */
+ static void setActiveInstance(TDEInstance *d);
+ static TDEInstance *activeInstance() { return _activeInstance; }
+
+ static TDEInstance *_activeInstance;
+};
+
+/**
+ * \relates TDEGlobal
+ * A typesafe function to find the minimum of the two arguments.
+ */
+#define KMIN(a,b) kMin(a,b)
+/**
+ * \relates TDEGlobal
+ * A typesafe function to find the maximum of the two arguments.
+ */
+#define KMAX(a,b) kMax(a,b)
+/**
+ * \relates TDEGlobal
+ * A typesafe function to determine the absolute value of the argument.
+ */
+#define KABS(a) kAbs(a)
+/**
+ * \relates TDEGlobal
+ * A typesafe function that returns x if it's between low and high values.
+ * low if x is smaller than then low and high if x is bigger than high.
+ */
+#define KCLAMP(x,low,high) kClamp(x,low,high)
+
+// XXX KDE4: Make kMin, kMax and kClamp return "T" instead of "const T &"!
+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 b < a ? a : b; }
+
+template<class T>
+inline T kAbs (const T& a) { return a < 0 ? -a : a; }
+
+template<class T>
+inline const T& kClamp( const T& x, const T& low, const T& high )
+{
+ if ( x < low ) return low;
+ else if ( high < x ) return high;
+ else return x;
+}
+
+/**
+ * Locale-independent tqstricmp. Use this for comparing ascii keywords
+ * in a case-insensitive way.
+ * tqstricmp fails with e.g. the Turkish locale where 'I'.lower() != 'i'
+ * @since 3.4
+ */
+int TDECORE_EXPORT kasciistricmp( const char *str1, const char *str2 );
+
+
+/**
+ * \mainpage 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 tdecore library. Also, using a
+ * TDEApplication derived class instead of TQApplication is almost
+ * mandatory if you expect your application to behave nicely within the
+ * KDE environment.
+ */
+
+#endif // _KGLOBAL_H
+