/[paragui]/paragui/src/core/pgmessageobject.cpp
ViewVC logotype

Diff of /paragui/src/core/pgmessageobject.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.6.8.2.2 by braindead, Mon Nov 24 09:17:21 2003 UTC revision 1.1.6.8.2.3 by braindead, Tue Dec 2 15:27:58 2003 UTC
# Line 84  void PG_MessageObject::EnableReceiver(bo Line 84  void PG_MessageObject::EnableReceiver(bo
84  /** message dispatcher */  /** message dispatcher */
85    
86  bool PG_MessageObject::ProcessEvent(const SDL_Event* event) {  bool PG_MessageObject::ProcessEvent(const SDL_Event* event) {
         MSG_MESSAGE* msg = NULL;  
87          SDL_Event e;          SDL_Event e;
88    
89          // check if we are able to process messages          // check if we are able to process messages
# Line 145  bool PG_MessageObject::ProcessEvent(cons Line 144  bool PG_MessageObject::ProcessEvent(cons
144                          rc = eventResize(&event->resize);                          rc = eventResize(&event->resize);
145                          break;                          break;
146    
                 case SDL_USEREVENT:  
                         msg = (MSG_MESSAGE*)(event->user.data1);  
   
                         if(msg->_to != NULL) {  
                                 return msg->_to->eventMessage(msg);  
                         }  
   
                         rc = eventMessage(msg);  
                         break;  
   
147                  default:                  default:
148                          rc = false;                          rc = false;
149                          break;                          break;
# Line 218  bool PG_MessageObject::AcceptEvent(const Line 207  bool PG_MessageObject::AcceptEvent(const
207          return true;                            // PG_MessageObject accepts all events          return true;                            // PG_MessageObject accepts all events
208  }  }
209    
   
 bool PG_MessageObject::eventMessage(MSG_MESSAGE* msg) {  
         bool rc = false;  
   
         if (!msg) {  
                 return false;  
         }  
       
         if((msg->_to != this) && (msg->_to != NULL)) {  
                 return false;  
         }  
   
         // dispatch user message  
         switch(msg->type) {  
                 case MSG_QUIT:  
                         rc = eventQuit(msg->widget_id, (PG_MessageObject*)(msg->_from), msg->data);  
                         break;  
   
                 case MSG_MODALQUIT:  
                         rc = eventQuitModal(msg->widget_id, (PG_MessageObject*)(msg->_from), msg->data);  
   
                         default:  
                         rc = false;  
                         break;  
         }  
   
         return rc;  
 }  
   
210  /** capture handling (an object can capture all messages) */  /** capture handling (an object can capture all messages) */
211    
212  PG_MessageObject* PG_MessageObject::SetCapture() {  PG_MessageObject* PG_MessageObject::SetCapture() {
# Line 364  bool PG_MessageObject::PumpIntoEventQueu Line 324  bool PG_MessageObject::PumpIntoEventQueu
324                  list++;                  list++;
325          }          }
326    
         // delete user message  
         if(event->type == SDL_USEREVENT) {  
                 delete (MSG_MESSAGE*)(event->user.data1);  
         }  
   
327          return processed;          return processed;
328  }  }
329    
# Line 412  bool PG_MessageObject::RemoveObject(PG_M Line 367  bool PG_MessageObject::RemoveObject(PG_M
367          return true;          return true;
368  }  }
369    
 /**  */  
 /*bool PG_MessageObject::SendMessage(PG_MessageObject* target, PG_MSG_TYPE type, MSG_ID id, MSG_DATA data) {  
         bool rc = false;  
   
         // check if there is a callback function  
         PG_EVENTHANDLERDATA* cbdata = PG_FindEventHandler(type, this);  
   
         if(cbdata != NULL) {  
   
                 // callback function  
                 if(cbdata->cbfunc != NULL) {  
                         rc = cbdata->cbfunc(id, (PG_Widget*)this, data, cbdata->data);  
                 }  
   
                 // object to call  
                 if(cbdata->calledobj != NULL) {  
                         rc = ((cbdata->calledobj)->*(cbdata->obj_cbfunc))(id, (PG_Widget*)this, data, cbdata->data);  
                 }  
         }  
   
         if(!rc) {  
                 MSG_MESSAGE* msg = new MSG_MESSAGE;  
                 msg->_to = target;  
                 msg->_from = this;  
                 msg->type = type;  
                 msg->widget_id = id;  
                 msg->data = data;  
   
                 SDL_Event event;  
                 event.type = SDL_USEREVENT;                                     // USEREVENT  
                 event.user.code = 0;                                                    // RESERVED  
                 event.user.data1 = (void*)msg;                                  // OUR MESSAGE OBJECT  
                 event.user.data2 = NULL;                                                // RESERVED;  
   
                 rc = (SDL_PushEvent(&event) == 0);  
         }  
   
         return rc;  
 }*/  
   
 /*  
 void PG_MessageObject::SetEventCallback(PG_MSG_TYPE type, MSG_CALLBACK cbfunc, void *clientdata) {  
         PG_RegisterEventHandler(type, this, cbfunc, clientdata);  
 }  
   
 void PG_MessageObject::SetEventObject(PG_MSG_TYPE type, PG_EventObject* calledobj, MSG_CALLBACK_OBJ cbfunc, void *clientdata) {  
         PG_RegisterEventHandlerObj(type, this, calledobj, cbfunc, clientdata);  
 }*/  
   
370  void PG_MessageObject::TranslateNumpadKeys(SDL_KeyboardEvent *key) {  void PG_MessageObject::TranslateNumpadKeys(SDL_KeyboardEvent *key) {
371          // note: works on WIN, test this on other platforms          // note: works on WIN, test this on other platforms
372    

Legend:
Removed from v.1.1.6.8.2.2  
changed lines
  Added in v.1.1.6.8.2.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26