Das K Desktop Environment

A.2. main.cpp

   1 /***************************************************************************
   2                           main.cpp  -  description
   3                              -------------------
   4     begin                : Mon Jan 31 11:05:05 CET 2000
   5     copyright            : (C) 2000 by Ralf Nolden
   6     email                : Ralf.Nolden@post.rwth-aachen.de
   7  ***************************************************************************/
   8 
   9 /***************************************************************************
  10  *                                                                         *
  11  *   This program is free software; you can redistribute it and/or modify  *
  12  *   it under the terms of the GNU General Public License as published by  *
  13  *   the Free Software Foundation; either version 2 of the License, or     *
  14  *   (at your option) any later version.                                   *
  15  *                                                                         *
  16  ***************************************************************************/
  17 #include <kcmdlineargs.h>
  18 #include <kaboutdata.h>
  19 #include <klocale.h>
  20 
  21 #include "kscribble.h"
  22 
  23 static const char *description =
  24    I18N_NOOP("KDE 2 example application");
  25 
  26 static KCmdLineOptions options[] =
  27 {
  28    {  "+[File]", I18N_NOOP("image file to open"), 0  },
  29    {  0, 0, 0  }
  30 };
  31 
  32 
  33 int main(int argc, char *argv[])
  34 {
  35    KAboutData aboutData( "kscribble", I18N_NOOP("KScribble"),
  36       VERSION, description, KAboutData::License_GPL,
  37       "(c) 2000, Ralf Nolden");
  38    aboutData.addAuthor("Ralf Nolden",0, "rnolden@kdevelop.de");
  39    KCmdLineArgs::init( argc, argv, &&;aboutData );
  40    KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
  41 
  42    KApplication app;
  43    KImageIO::registerFormats();
  44 
  45    if (app.isRestored())
  46    {
  47       RESTORE(KScribbleApp);
  48    }
  49    else
  50    {
  51       KScribbleApp *kscribble = new KScribbleApp();
  52       kscribble->show();
  53 
  54       KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
  55 
  56       if (args->count())
  57         for(int i=0;i<args->count();i++)
  58           kscribble->openDocumentFile(args->arg(i));
  59       else
  60         kscribble->openDocumentFile();
  61 
  62       args->clear();
  63    }
  64 
  65    return app.exec();
  66 }