[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paragui-cvs] CVS: paragui/src/core pgapplication.cpp,1.5,1.6 pgmessageo
From: |
Alexander Pipelka <address@hidden> |
Subject: |
[paragui-cvs] CVS: paragui/src/core pgapplication.cpp,1.5,1.6 pgmessageobject.cpp,1.4,1.5 |
Date: |
Tue, 30 Apr 2002 06:18:41 -0400 |
Update of /cvsroot/paragui/paragui/src/core
In directory subversions:/tmp/cvs-serv24317/src/core
Modified Files:
pgapplication.cpp pgmessageobject.cpp
Log Message:
generalized removing of child widgets from lists
moved some app specific functions from PG_MessageBox to PG_Application
Index: pgapplication.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/core/pgapplication.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** pgapplication.cpp 29 Apr 2002 11:44:22 -0000 1.5
--- pgapplication.cpp 30 Apr 2002 10:18:39 -0000 1.6
***************
*** 194,202 ****
object->sigAppIdle(object);
} else {
! PG_MessageObject::PumpIntoEventQueue(&event);
}
} else {
SDL_WaitEvent(&event);
! PG_MessageObject::PumpIntoEventQueue(&event);
}
--- 194,202 ----
object->sigAppIdle(object);
} else {
! PumpIntoEventQueue(&event);
}
} else {
SDL_WaitEvent(&event);
! PumpIntoEventQueue(&event);
}
***************
*** 929,932 ****
--- 929,1011 ----
void PG_Application::eventIdle() {
+ }
+
+ SDL_Event PG_Application::WaitEvent(Uint32 delay) {
+ static SDL_Event event;
+
+ while(SDL_PollEvent(&event) == 0) {
+ if(delay > 0) {
+ SDL_Delay(delay);
+ }
+ }
+
+ return event;
+ }
+
+ bool PG_Application::PumpIntoEventQueue(const SDL_Event* event) {
+ PG_Widget* widget = NULL;
+
+ // do we have a capture hook?
+ if((event->type != SDL_USEREVENT) && (event->type != SDL_VIDEORESIZE)
/*&& (event->type != SDL_VIDEOEXPOSE)*/) {
+ if(captureObject) {
+ return captureObject->ProcessEvent(event);
+ }
+ }
+
+ switch(event->type) {
+
+ case SDL_KEYDOWN:
+ case SDL_KEYUP:
+ if(inputFocusObject) {
+ // first send it to the focus object
+ if(inputFocusObject->ProcessEvent(event)) {
+ return true;
+ }
+ // if the focus object doesn't respond -> pump
it into the queue
+ }
+ break;
+
+ case SDL_MOUSEMOTION:
+ widget = PG_Widget::FindWidgetFromPos(event->motion.x,
event->motion.y);
+
+ if(lastwidget && (lastwidget != widget)) {
+ lastwidget->eventMouseLeave();
+ lastwidget = NULL;
+ }
+
+ if(widget) {
+ lastwidget = widget;
+ widget->ProcessEvent(event);
+ return true;
+ }
+ break;
+
+ case SDL_MOUSEBUTTONUP:
+ case SDL_MOUSEBUTTONDOWN:
+ widget = PG_Widget::FindWidgetFromPos(event->button.x,
event->button.y);
+ if(widget) {
+ widget->ProcessEvent(event);
+ return true;
+ }
+ break;
+ /*
+ case SDL_VIDEOEXPOSE:
+ PG_Widget::UpdateScreen();
+ return 0;
+ */
+ }
+
+ // send to all receivers
+ bool processed = false;
+ std::vector<PG_MessageObject*>::iterator list = objectList.begin();
+ while(list != objectList.end()) {
+ if((*list)->ProcessEvent(event)) {
+ processed = true;
+ break; // exit loop if an object responds
+ }
+ list++;
+ }
+
+ return processed;
}
Index: pgmessageobject.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/core/pgmessageobject.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** pgmessageobject.cpp 30 Apr 2002 06:37:04 -0000 1.4
--- pgmessageobject.cpp 30 Apr 2002 10:18:39 -0000 1.5
***************
*** 254,339 ****
- /** global event handler */
-
- bool PG_MessageObject::PumpIntoEventQueue(const SDL_Event* event) {
- PG_Widget* widget = NULL;
-
- // do we have a capture hook?
- if((event->type != SDL_USEREVENT) && (event->type != SDL_VIDEORESIZE)
/*&& (event->type != SDL_VIDEOEXPOSE)*/) {
- if(captureObject) {
- return captureObject->ProcessEvent(event);
- }
- }
-
- switch(event->type) {
-
- case SDL_KEYDOWN:
- case SDL_KEYUP:
- if(inputFocusObject) {
- // first send it to the focus object
- if(inputFocusObject->ProcessEvent(event)) {
- return true;
- }
- // if the focus object doesn't respond -> pump
it into the queue
- }
- break;
-
- case SDL_MOUSEMOTION:
- widget = PG_Widget::FindWidgetFromPos(event->motion.x,
event->motion.y);
-
- if(lastwidget && (lastwidget != widget)) {
- lastwidget->eventMouseLeave();
- lastwidget = NULL;
- }
-
- if(widget) {
- lastwidget = widget;
- widget->ProcessEvent(event);
- return true;
- }
- break;
-
- case SDL_MOUSEBUTTONUP:
- case SDL_MOUSEBUTTONDOWN:
- widget = PG_Widget::FindWidgetFromPos(event->button.x,
event->button.y);
- if(widget) {
- widget->ProcessEvent(event);
- return true;
- }
- break;
- /*
- case SDL_VIDEOEXPOSE:
- PG_Widget::UpdateScreen();
- return 0;
- */
- }
-
- // send to all receivers
- bool processed = false;
- std::vector<PG_MessageObject*>::iterator list = objectList.begin();
- while(list != objectList.end()) {
- if((*list)->ProcessEvent(event)) {
- processed = true;
- break; // exit loop if an object responds
- }
- list++;
- }
-
- return processed;
- }
-
- SDL_Event PG_MessageObject::WaitEvent(Uint32 delay) {
- static SDL_Event event;
-
- while(SDL_PollEvent(&event) == 0) {
- if(delay > 0) {
- SDL_Delay(delay);
- }
- }
-
- return event;
- }
-
-
/** Remove an object from the message queue */
--- 254,257 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paragui-cvs] CVS: paragui/src/core pgapplication.cpp,1.5,1.6 pgmessageobject.cpp,1.4,1.5,
Alexander Pipelka <address@hidden> <=
- Prev by Date:
[paragui-cvs] CVS: paragui/include pgapplication.h,1.6,1.7 pglistbox.h,1.6,1.7 pgmessageobject.h,1.7,1.8 pgwidget.h,1.7,1.8 pgwidgetlist.h,1.7,1.8
- Next by Date:
[paragui-cvs] CVS: paragui/include pgapplication.h,1.7,1.8 pgmessageobject.h,1.8,1.9 pgwidget.h,1.8,1.9
- Previous by thread:
[paragui-cvs] CVS: paragui/include pgapplication.h,1.6,1.7 pglistbox.h,1.6,1.7 pgmessageobject.h,1.7,1.8 pgwidget.h,1.7,1.8 pgwidgetlist.h,1.7,1.8
- Next by thread:
[paragui-cvs] CVS: paragui/include pgapplication.h,1.7,1.8 pgmessageobject.h,1.8,1.9 pgwidget.h,1.8,1.9
- Index(es):