diff options
Diffstat (limited to 'kpager/main.cpp')
-rw-r--r-- | kpager/main.cpp | 107 |
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; +} + |