Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

qtFrontEnd.cpp

Go to the documentation of this file.
00001 /********************************************************************
00002 Description: FrontEnd using Qt libraries
00003 part of the 3Dsia project
00004 created: StonedBones, 17.2.2000
00005 
00006 History:
00007     date,   name,       changes,                    in funtion
00008     ??0200  "Tommy"     created source
00009     170200  StonedBones integrated it in CVS-tree
00010     180200  StonedBones various changes, now works
00011 
00012 ********************************************************************/
00013 
00014 #include "qtFront.h"
00015 
00016 #include "qtFrontEnd.h"
00017 #include "../../../common/buffer.h"
00018 
00019 #include <qapp.h>
00020 #include <string.h>
00021 
00022 int myUsers;
00023 int myMatrices;
00024 Buffer* myStr;
00025 
00026 bool    usersChanged;
00027 bool    matricesChanged;
00028 bool    strChanged;
00029 
00030 
00031 /*...................................................................
00032 Description: Constructor
00033 Args: int argc, char** argv: arguments from 'main'
00034 Returns: <none>
00035 Created: "Tommy", ??.2.2000
00036 [ToDo:]
00037 [Comments:]
00038 Changes:
00039 - 18.2.2000, StonedBones: added global variables and their initializations
00040 -------------------------------------------------------------------*/
00041 
00042 QtFrontEnd::QtFrontEnd (int argc, char** argv) : FrontEnd (argc, argv) {
00043     this->argc=argc;
00044     this->argv=argv;
00045     
00046     myUsers    = 0;
00047     myMatrices = 0;
00048     
00049     usersChanged    = false;
00050     matricesChanged = false;
00051     strChanged      = false;
00052     
00053     myUsers    = 0;
00054     myMatrices = 0;
00055     myStr      = new Buffer ();
00056 };
00057 
00058 /*...................................................................
00059 Description: the secret constructor... workaround for Qt (see Skelleton)
00060 Args: <none>
00061 Returns: <none>
00062 Created: "Tommy", ??.2.2000
00063 [ToDo:]
00064 [Comments:]
00065 Changes:
00066 - 18.2.2000, StonedBones: added timer for updates
00067 -------------------------------------------------------------------*/
00068 
00069 void QtFrontEnd::init () {
00070     QApplication* qapp;
00071     qapp = new QApplication (argc, argv);
00072     
00073     s=new qtFront();
00074     qapp->setMainWidget(s);
00075     s->show();
00076     
00077     frontUpdate = new FrontUpdate (s, s);
00078     
00079     timer = new QTimer ();
00080     QObject::connect (timer, SIGNAL (timeout ()), frontUpdate, SLOT (update ()));
00081     QObject::connect (frontUpdate, SIGNAL (sigUpdate ()), frontUpdate, SLOT (update ()));
00082     timer->start (100, FALSE);
00083     
00084     qapp->exec ();
00085     
00086     exit (0);
00087 };
00088 
00089 /*...................................................................
00090 Description: Destructor
00091 Args: <none>
00092 Returns: <none>
00093 Created: "Tommy", ??.2.2000
00094 [ToDo:]
00095 [Comments:]
00096 Changes:
00097 -------------------------------------------------------------------*/
00098 
00099 QtFrontEnd::~QtFrontEnd () {
00100 };
00101     
00102 /*...................................................................
00103 Description: update function; not needed for this frontend
00104 Args: <none>
00105 Returns: <none>
00106 Created: "Tommy", ??.2.2000
00107 [ToDo:]
00108 [Comments:]
00109 Changes:
00110 -------------------------------------------------------------------*/
00111 
00112 void QtFrontEnd::update () {
00113 };
00114 
00115 
00116 /*...................................................................
00117 Description: displays users currently logged in
00118 Args: int users: guess what :-)
00119 Returns: <none>
00120 Created: "Tommy", ??.2.2000
00121 [ToDo:]
00122 [Comments:]
00123 Changes:
00124 - 18.2.2000, StonedBones: function rewritten
00125 -------------------------------------------------------------------*/
00126 
00127 void QtFrontEnd::displayUsers (int users) {
00128     myUsers = users;
00129     usersChanged = true;
00130 };
00131 
00132 /*...................................................................
00133 Description: display open matrices
00134 Args: int matrices: open matrices
00135 Returns: <none>
00136 Created: "Tommy", ??.2.2000
00137 [ToDo:]
00138 [Comments:]
00139 Changes:
00140 - 18.2.2000, StonedBones: function rewritten
00141 -------------------------------------------------------------------*/
00142 
00143 void QtFrontEnd::displayMatrices (int matrices) {
00144     myMatrices = matrices;
00145     matricesChanged = true;
00146 };
00147     
00148 /*...................................................................
00149 Description: displays debug messages
00150 Args: char* msg: message
00151 Returns: <none>
00152 Created: "Tommy", ??.2.2000
00153 [ToDo:]
00154 [Comments:]
00155 Changes:
00156 - 18.2.2000, StonedBones: function rewritten
00157 -------------------------------------------------------------------*/
00158 
00159 void QtFrontEnd::displayDebugMessage (const char* msg) {
00160     packet tmp;
00161     strcpy (tmp.data, msg);
00162     
00163     myStr->write (&tmp);
00164     
00165     strChanged = true;
00166 };
00167 
00168 
00169 
00170 
00171 /*...................................................................
00172 Description: constructor for Qt-workaround-object (multi-threading problems)
00173 Args: qtFront* myFront: the actual frontend; QObject* parent: for Qt
00174 Returns: <none>
00175 Created: StonedBones, 18.2.2000
00176 [ToDo:]
00177 [Comments:]
00178 Changes:
00179 -------------------------------------------------------------------*/
00180 
00181 FrontUpdate::FrontUpdate (qtFront* myFront, QObject* parent) : QObject (parent, "frontEndUpdate") {
00182     theFront = myFront;
00183 };
00184 
00185 /*...................................................................
00186 Description: destructor for helper-class
00187 Args: <none>
00188 Returns: <none>
00189 Created: StonedBones, 18.2.2000
00190 [ToDo:]
00191 [Comments:]
00192 Changes:
00193 -------------------------------------------------------------------*/
00194 
00195 FrontUpdate::~FrontUpdate () {
00196 };
00197 
00198 /*...................................................................
00199 Description: the update slot (updates the GUI if needed)
00200 Args: <none>
00201 Returns: <none>
00202 Created: StonedBones, 18.2.2000
00203 [ToDo:]
00204 [Comments:]
00205 Changes:
00206 -------------------------------------------------------------------*/
00207 
00208 void FrontUpdate::update () {
00209     if (usersChanged) {
00210     theFront->LCDusers->display (myUsers);
00211     usersChanged = false;
00212     };
00213     
00214     if (matricesChanged) {
00215     theFront->LCDmatrices->display (myMatrices);
00216     matricesChanged = false;
00217     };
00218     
00219     if (strChanged) {
00220     while (!myStr->isEmpty ()) {
00221         theFront->debugMsgWin->insertLine (myStr->read ()->data);
00222     };
00223     strChanged = false;
00224     };
00225 };
00226 

Generated at Sat May 13 13:50:22 2000 for 3Dsia by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000