Hauptseite | Liste aller Namensbereiche | Klassenhierarchie | Alphabetische Liste | Datenstrukturen | Auflistung der Dateien | Datenstruktur-Elemente | Datei-Elemente

Message.cpp

gehe zur Dokumentation dieser Datei
00001 /*
00002 Autor: $Author: kunkel $ State: $State: Exp $
00003 Datum: $Date: 2005/05/30 12:35:25 $
00004 Version: $Revision: 1.1 $
00005 */
00006 
00012 #include <iostream>
00013 
00014 #include "Message.h"
00015 
00016 GLUI_StaticText * Message::txtMessage;
00017 GLUI_Spinner * Message::change;
00018 Message::listMessages Message::messages;
00019 
00025 void Message::setText(char * text, messageType t) {
00026     txtMessage->set_text(text);
00027 }
00028 
00032 void Message::clearMessages() {
00033     messages.clear();
00034     change->set_int_limits(0,0);
00035     setText("", MSG);
00036 }
00037 
00045 void Message::msg(messageType t, const string & msg1,const string & msg2,const string & msg3) {
00046     if( messages.size() >= MAX_MSG) {
00047         messages.pop_back();
00048     }
00049 
00050     // erzeuge neue singleMessage mit den übergebenen strings
00051     singleMessage tmp;
00052     int pos1 = msg1.length();
00053     int pos2 = pos1+msg2.length();
00054     if(pos1 > MSG_LEN)
00055         pos1 = MSG_LEN;
00056     if(pos2 > MSG_LEN)
00057         pos2 = MSG_LEN;
00058     strncpy(tmp.msg, msg1.c_str(), MSG_LEN);
00059     strncpy(tmp.msg+pos1, msg2.c_str(), MSG_LEN-pos1);
00060     strncpy(tmp.msg+pos2, msg3.c_str(), MSG_LEN-pos2);
00061     tmp.msg[MSG_LEN -1] = 0;
00062     tmp.type = t;
00063 
00064     // fuege neue Nachricht in die Nachrichtenliste ein
00065     messages.push_front(tmp);
00066 
00067     // aktualisiere Spinner
00068     change->set_int_limits(1,messages.size());
00069     change->set_int_val(1);
00070 
00071     // setze GLUI Text
00072     setText( messages.begin()->msg,t );
00073 }
00074 
00079 void Message::CreateWindow( int mainWin ) {
00080     const GLUI_Update_CB mc = ( GLUI_Update_CB ) Message::MenuCallback;
00081     GLUI * messageWindow = GLUI_Master.create_glui_subwindow(
00082                                mainWin, GLUI_SUBWINDOW_BOTTOM );
00083     messageWindow->set_main_gfx_window( mainWin );
00084 
00085     change =
00086         messageWindow->add_spinner("MSG",GLUI_SPINNER_INT,NULL,CHOOSE_MSG,mc);
00087     change->edittext->disable();
00088     messageWindow->add_column(false);
00089     txtMessage = messageWindow->add_statictext( "" );
00090     change->set_int_limits(0,0);
00091 }
00092 
00097 void Message::MenuCallback( button b ) {
00098     switch ( b ) {
00099     case (CHOOSE_MSG): {
00100             listMessages::iterator it= messages.begin();
00101             for ( int i = change->get_int_val() ; i > 1; i--)
00102                 it++;
00103             setText(it->msg,it->type);
00104             break;
00105         }
00106     default:
00107         cout << "KEY " << b << " nicht definiert !" << endl;
00108     }
00109 }
00110 

Erzeugt am Mon May 30 14:31:15 2005 für Sunsystembuildingandsimulation von doxygen 1.3.6