/******************************************************************************\ * Copyright (c) 2004-2006 * * Author(s): * Volker Fischer * ****************************************************************************** * * 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., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * \******************************************************************************/ #include #include "global.h" #include "llconclientdlg.h" #include "llconserverdlg.h" #include "settings.h" /* Implementation *************************************************************/ /* This pointer is only used for the post-event routine */ QApplication* pApp = NULL; int main ( int argc, char** argv ) { /* Application object */ QApplication app ( argc, argv ); /* check if server or client application shall be started */ bool bIsClient = true; /* QT docu: argv()[0] is the program name, argv()[1] is the first argument and argv()[argc()-1] is the last argument */ if ( argc > 1 ) { /* only "-s" is supported right now */ std::string strShortOpt = "-s"; if ( !strShortOpt.compare ( argv[1] ) ) { bIsClient = false; } } if ( bIsClient ) { // actual client object CClient Client; // load settings from init-file CSettings Settings ( &Client ); Settings.Load (); /* client */ CLlconClientDlg ClientDlg ( &Client, 0, 0, FALSE, Qt::WStyle_MinMax ); /* Set main window */ app.setMainWidget ( &ClientDlg ); pApp = &app; /* Needed for post-event routine */ /* Show dialog */ ClientDlg.show (); app.exec (); /* Save settings to init-file */ Settings.Save (); } else { /* server */ CLlconServerDlg ServerDlg ( 0, 0, FALSE, Qt::WStyle_MinMax ); /* Set main window */ app.setMainWidget ( &ServerDlg ); pApp = &app; /* Needed for post-event routine */ /* Show dialog */ ServerDlg.show (); app.exec (); } return 0; } void PostWinMessage ( const _MESSAGE_IDENT MessID, const int iMessageParam, const int iChanNum ) { /* In case of simulation no events should be generated */ if ( pApp != NULL ) { CLlconEvent* LlconEv = new CLlconEvent ( MessID, iMessageParam, iChanNum ); /* Qt will delete the event object when done */ QThread::postEvent ( pApp->mainWidget (), LlconEv ); } }