C
WORD GOLMsgCallback( WORD objMsg, OBJ_HEADER * pObj, GOL_MSG * pMsg );
Overview
The user MUST implement this function. GOLMsg() calls this function when a valid message for an object in the active list is received. User action for the message should be implemented here. If this function returns non-zero, the message for the object will be processed by default. If zero is returned, GOL will not perform any action.
Input Parameters
|
Input Parameters |
Description |
|
WORD objMsg |
Translated message for the object or the action ID response from the object. |
|
OBJ_HEADER * pObj |
Pointer to the object that processed the message. |
|
GOL_MSG * pMsg |
Pointer to the GOL message from user. |
Returns
Return a non-zero if the message will be processed by default. If a zero is returned, the message will not be processed by GOL.
Preconditions
none
Side Effects
none
Example
WORD GOLMsgCallback(WORD objMsg, OBJ_HEADER* pObj, GOL_MSG *pMsg){
static char focusSwitch = 1;
switch(GetObjID(pObj)){
case ID_BUTTON1:
// Change text and focus state
if(objMsg == BTN_MSG_RELEASED){
focusSwitch ^= 1;
if(focusSwitch){
BtnSetText((BUTTON*)pObj, "Focused");
SetState(pObj,BTN_FOCUSED);
}else{
BtnSetText((BUTTON*)pObj, "Unfocused");
ClrState(pObj,BTN_FOCUSED);
}
}
// Process by default
return 1;
case ID_BUTTON2:
// Change text
if(objMsg == BTN_MSG_PRESSED){
BtnSetText((BUTTON*)pObj, "Pressed");
}
if(objMsg == BTN_MSG_RELEASED){
BtnSetText((BUTTON*)pObj, "Released");
}
// Process by default
return 1;
case ID_BUTTON3:
// Change face picture
if(objMsg == BTN_MSG_PRESSED){
BtnSetBitmap(pObj,arrowLeft);
}
if(objMsg == BTN_MSG_RELEASED){
BtnSetBitmap(pObj,(char*)arrowRight);
}
// Process by default
return 1;
case ID_BUTTON_NEXT:
if(objMsg == BTN_MSG_RELEASED){
screenState = CREATE_CHECKBOXES;
}
// Process by default
return 1;
case ID_BUTTON_BACK:
return 1;
default:
return 1;
}
}