knotes Library API Documentation

main.cpp

00001 /******************************************************************* 00002 KNotes -- Notes for the KDE project 00003 00004 Copyright (c) 1997-2004, The KNotes Developers 00005 00006 This program is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU General Public License 00008 as published by the Free Software Foundation; either version 2 00009 of the License, or (at your option) any later version. 00010 00011 This program is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU General Public License for more details. 00015 00016 You should have received a copy of the GNU General Public License 00017 along with this program; if not, write to the Free Software 00018 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 *******************************************************************/ 00020 00021 #include <kuniqueapplication.h> 00022 #include <kcmdlineargs.h> 00023 #include <kaboutdata.h> 00024 #include <klocale.h> 00025 #include <kxerrorhandler.h> 00026 00027 #include <X11/Xlib.h> 00028 #include <X11/Xatom.h> 00029 00030 #include "knotesapp.h" 00031 #include "version.h" 00032 #include "main.h" 00033 00034 00035 void remove_sm_from_client_leader() 00036 { 00037 Atom type; 00038 int format, status; 00039 unsigned long nitems = 0; 00040 unsigned long extra = 0; 00041 unsigned char *data = 0; 00042 00043 Atom atoms[ 2 ]; 00044 char *atom_names[ 2 ] = { (char*)"WM_CLIENT_LEADER", (char*)"SM_CLIENT_ID" }; 00045 00046 XInternAtoms( qt_xdisplay(), atom_names, 2, False, atoms ); 00047 00048 QWidget w; 00049 KXErrorHandler handler; // ignore X errors 00050 status = XGetWindowProperty( qt_xdisplay(), w.winId(), atoms[ 0 ], 0, 10000, 00051 FALSE, XA_WINDOW, &type, &format, 00052 &nitems, &extra, &data ); 00053 00054 if (status == Success && !handler.error( false )) 00055 { 00056 if (data && nitems > 0) 00057 { 00058 Window leader = *((Window*) data); 00059 XDeleteProperty( qt_xdisplay(), leader, atoms[ 1 ] ); 00060 } 00061 XFree(data); 00062 } 00063 } 00064 00065 00066 Application::Application() 00067 : KUniqueApplication(), mMainWindow( 0 ) 00068 { 00069 } 00070 00071 Application::~Application() 00072 { 00073 delete mMainWindow; 00074 } 00075 00076 int Application::newInstance() 00077 { 00078 if ( !mMainWindow ) 00079 { 00080 mMainWindow = new KNotesApp(); 00081 mMainWindow->show(); 00082 } 00083 else 00084 mMainWindow->newNote(); 00085 00086 return KUniqueApplication::newInstance(); 00087 } 00088 00089 int main( int argc, char* argv[] ) 00090 { 00091 QString version = QString::number( KNOTES_VERSION ); 00092 00093 KAboutData aboutData( 00094 "knotes", 00095 I18N_NOOP("KNotes"), 00096 version.latin1(), 00097 I18N_NOOP( "KDE Notes" ), 00098 KAboutData::License_GPL, 00099 I18N_NOOP("(c) 1997-2004, The KNotes Developers") 00100 ); 00101 00102 aboutData.addAuthor("Michael Brade", I18N_NOOP("Maintainer"), "brade@kde.org"); 00103 aboutData.addAuthor("Bernd Johannes Wuebben", I18N_NOOP("Original KNotes Author"), "wuebben@kde.org"); 00104 aboutData.addAuthor("Wynn Wilkes", I18N_NOOP("Ported KNotes to KDE 2"), "wynnw@calderasystems.com"); 00105 aboutData.addAuthor("Daniel Martin", I18N_NOOP("Network Interface"), "daniel.martin@pirack.com"); 00106 aboutData.addAuthor("Bo Thorsen", I18N_NOOP("Started KDE Resource Framework Integration"), "bo@sonofthor.dk"); 00107 00108 aboutData.addCredit("Matthias Ettrich", 0, "ettrich@kde.org"); 00109 aboutData.addCredit("David Faure", 0, "faure@kde.org"); 00110 aboutData.addCredit("Matthias Kiefer", 0, "kiefer@kde.org"); 00111 aboutData.addCredit("Luboš Luňák", 0, "l.lunak@kde.org"); 00112 aboutData.addCredit("Laurent Montel", 0, "montel@kde.org"); 00113 aboutData.addCredit("Dirk A. Mueller", 0, "dmuell@gmx.net"); 00114 aboutData.addCredit("Carsten Pfeiffer", 0, "pfeiffer@kde.org"); 00115 aboutData.addCredit("Harri Porten", 0, "porten@kde.org"); 00116 aboutData.addCredit("Espen Sand", 0, "espen@kde.org"); 00117 00118 KCmdLineArgs::init( argc, argv, &aboutData ); 00119 00120 KUniqueApplication::addCmdLineOptions(); 00121 00122 Application app; 00123 app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) ); 00124 00125 remove_sm_from_client_leader(); 00126 00127 int rval = app.exec(); 00128 00129 return rval; 00130 }
KDE Logo
This file is part of the documentation for knotes Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 21 19:46:28 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003