summaryrefslogtreecommitdiffstats
path: root/kpager/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kpager/main.cpp')
-rw-r--r--kpager/main.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/kpager/main.cpp b/kpager/main.cpp
new file mode 100644
index 000000000..cf943f4f0
--- /dev/null
+++ b/kpager/main.cpp
@@ -0,0 +1,107 @@
+/**************************************************************************
+
+ main.cpp - The main function for KPager
+ Copyright (C) 1998-2000 Antonio Larrosa Jimenez
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ Send comments and bug fixes to larrosa@kde.org
+
+***************************************************************************/
+
+#include <kuniqueapplication.h>
+#include <klocale.h>
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <qcolor.h>
+#include <kdebug.h>
+#include <stdlib.h>
+#include <qsessionmanager.h>
+
+#include "kpager.h"
+
+static KCmdLineOptions pagerOpts[] =
+{
+ { "hidden", I18N_NOOP("Create pager but keep the window hidden"), 0 },
+ KCmdLineLastOption
+};
+
+bool closed_by_sm = false;
+
+class KPagerApplication : public KUniqueApplication
+{
+public:
+ KPagerApplication() : KUniqueApplication() {}
+
+ void commitData(QSessionManager& sm) {
+ if (mainWidget()->isHidden()) {
+ sm.setRestartHint( QSessionManager::RestartNever );
+ return;
+ }
+ closed_by_sm = true;
+ KUniqueApplication::commitData( sm );
+ closed_by_sm = false;
+ }
+
+ int newInstance() {
+ mainWidget()->show();
+ return 0;
+ }
+
+};
+
+int main(int argc, char **argv)
+{
+ KAboutData *aboutdata = new KAboutData("kpager", "KPager", "1.5",
+ I18N_NOOP("Desktop Overview"), KAboutData::License_GPL,
+ "(C) 1998-2002, Antonio Larrosa Jimenez","",
+ "http://developer.kde.org/~larrosa/kpager.html");
+
+ aboutdata->addAuthor("Antonio Larrosa Jimenez",
+ I18N_NOOP("Original Developer/Maintainer"),"larrosa@kde.org",
+ "http://developer.kde.org/~larrosa/index.html");
+ aboutdata->addAuthor("Matthias Elter",
+ I18N_NOOP("Developer"),"elter@kde.org", "");
+ aboutdata->addAuthor("Matthias Ettrich",
+ I18N_NOOP("Developer"),"ettrich@kde.org", "");
+
+ KCmdLineArgs::init(argc, argv, aboutdata);
+ KCmdLineArgs::addCmdLineOptions(pagerOpts);
+ KUniqueApplication::addCmdLineOptions();
+
+ if (!KUniqueApplication::start())
+ {
+ kdError() << "kpager is already running!" << endl;
+ return 0;
+ }
+
+
+ KApplication * app = new KPagerApplication;
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+
+ KPagerMainWindow *kpager = new KPagerMainWindow(0,"KPager");
+ kpager->setPlainCaption( i18n("Desktop Pager") );
+
+
+ app->setMainWidget(kpager);
+ if (!args->isSet("hidden")) kpager->show();
+ else kpager->hide();
+
+ int ret = app->exec();
+
+ delete app;
+ return ret;
+}
+