Beispiel #1
0
static	void	MouseUp( HWND w, DWORD l )
{
WORD	id ;
HWND	hwnd ;
WORD	cmd ;
LPARAM	lparam ;
WPARAM	wparam ;

	id = GetDlgCtrlID(w) ;
	hwnd = w ;
	cmd = BN_CLICKED ;
#ifdef WIN32
	lparam = (LPARAM)hwnd ;
	wparam = MAKEWPARAM(id,cmd) ;
#else
	wparam = (WPARAM)id ;
	lparam = MAKELPARAM(hwnd,cmd) ;
#endif

	if ( TstState( FB_CAPTURING ) )
		{

		MouseMove( w, l ) ;

		ReleaseCapture() ;
		ClrState( FB_TO_SET | FB_CAPTURING ) ;

		if ( TstState( (WORD)FB_SELECTED ) )
			MakeRadioIteration( w ) ;
		SendMessage( GetParent( w ), WM_COMMAND,
			wparam , lparam) ;
		}
}
Beispiel #2
0
/*********************************************************************
* Function: BtnMsgDefault(WORD translatedMsg, BUTTON *pB, GOL_MSG* pMsg)
*
*
* Notes: This the default operation to change the state of the button.
*		 Called inside GOLMsg() when GOLMsgCallback() returns a 1.
*
********************************************************************/
void  BtnMsgDefault(WORD translatedMsg, BUTTON *pB, GOL_MSG* pMsg){

#ifdef  USE_FOCUS
#ifdef  USE_TOUCHSCREEN
    if(pMsg->type == TYPE_TOUCHSCREEN){
        if(!GetState(pB,BTN_FOCUSED)){
                GOLSetFocus((OBJ_HEADER*)pB);
        }
    }
#endif
#endif

    switch(translatedMsg){

        case BTN_MSG_PRESSED:
            SetState(pB, BTN_PRESSED|BTN_DRAW); 	// set pressed and redraw
            break;

        case BTN_MSG_RELEASED:
            ClrState(pB, BTN_PRESSED);  			// reset pressed
            SetState(pB, BTN_DRAW);   			// redraw
            break;

    }

}
Beispiel #3
0
static	void	MouseMove( HWND w, DWORD l )
{
	if ( TstState( FB_CAPTURING ) )
		{
		RECT	r ;

		GetClientRect( w, & r ) ;

		if ( XyInRect( LOWORD( l ), HIWORD( l ), r ) )
			{
			if ( ! TstState( FB_TO_SET ) )
				{
				SetState( (WORD)FB_TO_SET ) ;
				XorState( (WORD)FB_SELECTED ) ;
				InvalidateRect( w, 0, 1 ) ;
				}
			}
		else if ( TstState( FB_TO_SET ) )
			{
			ClrState( (WORD)FB_TO_SET ) ;
			XorState( (WORD)FB_SELECTED ) ;
			InvalidateRect( w, 0, 1 ) ;
			}
		}
}
Beispiel #4
0
/*****************************************************************************
 * void CreateLightingScreen(void)
 *
 * NOTE:  The lighting demo is not available when using the PIC24FJ256GB210.
 *        The demo requires loading an image from the external memory, the Epson
 *        S1D13517 () has some routing conflicts which make loading the image
 *        difficult and not robust.  For these reasons, the lighting demo has
 *        been take out for a better out of box experience.
 *****************************************************************************/
void CreateLightingScreen(void)
{

    GOL_SCHEME *currentScheme;

    currentScheme = GFX_SchemeGetCurrentScheme();

    SetColor(currentScheme->Color0);

    while(!FillBevel((GetMaxX() >> 2) + 20,90 ,GetMaxX() - 10, GetMaxY()-10,5));				     	

	while(!AlphaBlendWindow(GetDrawBufferAddress(), (GetMaxX() >> 2) + 15, 85,
					 GFX_PAGE1, (GetMaxX() >> 2) + 15, 85,
					 GetDrawBufferAddress(), (GetMaxX() >> 2) + 15, 85,
				     (GetMaxX())-((GetMaxX() >> 2) + 15), 
				     GetMaxY() - 90,  	
				     GFX_SchemeGetDefaultScheme()->AlphaValue));

    SetState(GOLFindObject(PANEL_SCREEN_ID_LIGHTING_BUT), BTN_DISABLED);

    if(GetState(GOLFindObject(PANEL_SCREEN_ID_COMFORT_BUT),BTN_DISABLED))
    {
        ClrState(GOLFindObject(PANEL_SCREEN_ID_COMFORT_BUT), BTN_DISABLED);
        SetState(GOLFindObject(PANEL_SCREEN_ID_COMFORT_BUT),BTN_DRAW);
    }

    if(GetState(GOLFindObject(PANEL_SCREEN_ID_SECURITY_BUT),BTN_DISABLED))
    {
        ClrState(GOLFindObject(PANEL_SCREEN_ID_SECURITY_BUT), BTN_DISABLED);
        SetState(GOLFindObject(PANEL_SCREEN_ID_SECURITY_BUT),BTN_DRAW);
    }

    if(GetState(GOLFindObject(PANEL_SCREEN_ID_ENERGY_USAGE_BUT),BTN_DISABLED))
    { 
        ClrState(GOLFindObject(PANEL_SCREEN_ID_ENERGY_USAGE_BUT), BTN_DISABLED);
        SetState(GOLFindObject(PANEL_SCREEN_ID_ENERGY_USAGE_BUT),BTN_DRAW);
    }

/***
 * See above note in the function comment for more information
 **/
    #ifndef __PIC24FJ256GB210__
    GFX_BlockUntilFinished(PutImage((GetMaxX() >> 2)+40, 90+10, (void *) &House, IMAGE_NORMAL));
    #endif

}
Beispiel #5
0
/*********************************************************************
* Function: void GOLSetFocus(OBJ_HEADER* object)
*
* PreCondition: none
*
* Input: pointer to the object to be focused
*
* Output: 
*
* Side Effects: none
*
* Overview: moves keyboard focus to the object
*
* Note: none
*
********************************************************************/
void GOLSetFocus(OBJ_HEADER* object){

	if(!GOLCanBeFocused(object)) 
		return;
		
    if(_pObjectFocused != NULL){
        ClrState(_pObjectFocused, FOCUSED);
        SetState(_pObjectFocused, DRAW_FOCUS);
    }

     SetState(object, DRAW_FOCUS|FOCUSED);

    _pObjectFocused = object;
}
Beispiel #6
0
static	void	CheckKeyDown( HWND w, int down )
{
WORD	id ;
HWND	hwnd ;
WORD	cmd ;
LPARAM	lparam ;
WPARAM	wparam ;

	id = GetDlgCtrlID(w) ;
	hwnd = w ;
	cmd = BN_CLICKED ;
#ifdef WIN32
	lparam = (LPARAM)hwnd ;
	wparam = MAKEWPARAM(id,cmd) ;
#else
	wparam = (WPARAM)id ;
	lparam = MAKELPARAM(hwnd,cmd) ;
#endif

	if ( ! TstState( FB_CAPTURING ) )
		if ( down && ! TstState( FB_KEYDOWN ) )
			{
			if ( ! TstState( FB_SELECTED ) ||
				! TstF( GetStyle(), FC_RADIO ) )
					{
					XorState( (WORD)FB_SELECTED ) ;
					SetState( (WORD)FB_KEYDOWN ) ;
					InvalidateRect( w, 0, 1 ) ;
					}
			}
		else if ( ( ! down ) && TstState( FB_KEYDOWN ) )
			{
			ClrState( (WORD)FB_KEYDOWN ) ;
			MakeRadioIteration( w ) ;
			SendMessage( GetParent( w ), WM_COMMAND,
				     wparam , lparam) ;
			}
}
Beispiel #7
0
/*********************************************************************
* Function: CbMsgDefault(WORD translatedMsg, CHECKBOX *pCb, GOL_MSG* pMsg)
*
* Overview: Changes the state of the check box by default.
*
********************************************************************/
void CbMsgDefault(WORD translatedMsg, CHECKBOX* pCb, GOL_MSG* pMsg) {

#ifdef  USE_FOCUS
#ifdef  USE_TOUCHSCREEN
    if(pMsg->type == TYPE_TOUCHSCREEN) {
        if(!GetState(pCb,CB_FOCUSED)) {
            GOLSetFocus((OBJ_HEADER*)pCb);
        }
    }
#endif
#endif

    switch(translatedMsg) {
    case CB_MSG_CHECKED:
        SetState(pCb, CB_CHECKED|CB_DRAW_CHECK); // Set checked and redraw
        break;

    case CB_MSG_UNCHECKED:
        ClrState(pCb, CB_CHECKED);        // Reset check
        SetState(pCb, CB_DRAW_CHECK);     // Redraw
        break;
    }

}
Beispiel #8
0
/************************************************************************
 Function: WORD MsgAnimation(WORD objMsg, OBJ_HEADER* pObj, GOL_MSG* pMsg)

 Overview: This function is called by GOLMsg() function when in this
 		   particular demo each time the valid message is received for the
  		   objects in the demo.

 Input: objMsg - translated message for the object,
        pObj - pointer to the object,
        pMsg - pointer to the original GOL message.

 Output: If the function returns non-zero the message will
 		 be processed by the object directly affected by the message.
 		 Default action on the object based on the message will be
 		 performed.
************************************************************************/
WORD MsgAnimation(WORD objMsg, OBJ_HEADER *pObj, GOL_MSG *pMsg)
{
    static BYTE scale = 2;
    WORD        value;

    if(objMsg == BTN_MSG_RELEASED)
    {
        switch(GetObjID(pObj))
        {
        case ID_BUTTON_A:
            if(objMsg == BTN_MSG_RELEASED)
            {

                // do not process if user moved the touch away from the button
                // returning 1 wil update the button
                if(pMsg->uiEvent == EVENT_MOVE)
                    return (1);

                // implements some form of debounce
                // add code here.
                screenState = CREATE_DEMOSELECTION;
                return (0);
            }

        case ID_BUTTON_B:
            if(objMsg == BTN_MSG_RELEASED)
            {

                // do not process if user moved the touch away from the button
                // returning 1 wil update the button
                if(pMsg->uiEvent == EVENT_MOVE)
                    return (1);
            }

            if(scale == 1)
            {
                PictSetScale(pPicture, 2);      // x2
                scale = 2;
                ClrState(pPicture, PICT_FRAME); // set redraw state
            }
            else
            {
                PictSetScale(pPicture, 1);      // x1
                scale = 1;
                SetState(pPicture, PICT_FRAME); // set redraw state
            }

            SetState(pPicture, PICT_DRAW);      // set redraw state
            return (1);                         // process by default

        case ID_BUTTON_C:
            if(GetState((BUTTON *)GOLFindObject(ID_BUTTON_C), BTN_PRESSED))
            {
                value = MtrGetVal(pMeter);      // get current value
                MtrDecVal(pMeter, 1);
                SetState(pMeter, MTR_DRAW_UPDATE);
            }

            return (1);

        case ID_BUTTON_D:
            if(GetState((BUTTON *)GOLFindObject(ID_BUTTON_D), BTN_PRESSED))
            {
                value = MtrGetVal(pMeter);      // get current value
                MtrIncVal(pMeter, 1);
                SetState(pMeter, MTR_DRAW_UPDATE);
            }

            return (1);                         // process by default

        default:
            return (1);                         // process by default
        }
    }

    return (1); // process by default
}
Beispiel #9
0
/************************************************************************
 Function: WORD JPEGMsgCallback(WORD objMsg, OBJ_HEADER* pObj, 
 								GOL_MSG* pMsg)

 Overview: This function is called by GOLMsg() function when in this 
 		   particular demo each time the valid message is received for the 
  		   objects in the demo.
           
 Input: objMsg - translated message for the object,
        pObj - pointer to the object,
        pMsg - pointer to the non-translated, raw GOL message 

 Output: If the function returns non-zero the message will 
 		 be processed by the object directly affected by the message.
 		 Default action on the object based on the message will be 
 		 performed.
************************************************************************/
WORD JPEGMsgCallback(WORD objMsg, OBJ_HEADER *pObj, GOL_MSG *pMsg)
{
    LISTITEM    *pItemSel;

    // check if an image is being shown
    if((blImageOnScreen == 1) || (blSlideShowOn == 1))
    {

        // this is the routine to go back and show the list when an
        // image is being shown on the screen or the slide show is
        // currently ongoing
        if(pMsg->uiEvent == EVENT_RELEASE)
        {
            blImageOnScreen = 0;
            blSlideShowOn = 0;
            GOLRedrawRec(0, 0, GetMaxX(), GetMaxY());
        }

        return (0);
    }

    switch(GetObjID(pObj))
    {
        case ID_BUTTON_A:
            if(objMsg == BTN_MSG_RELEASED)
            {   // check if button is pressed
                // do not process if user moved the touch away from the button
                // returning 1 wil update the button
                if(pMsg->uiEvent == EVENT_MOVE)
                    return (1);
                screenState = CREATE_DEMOSELECTION;
            }

            return (1);

        case ID_BUTTON_D:
            if(objMsg == BTN_MSG_RELEASED)
            {   // check if button is pressed
                // do not process if user moved the touch away from the button
                // returning 1 wil update the button
                if(pMsg->uiEvent == EVENT_MOVE)
                    return (1);

                // enable the slide show
                blSlideShowOn = 1;
				// initialize the screen	
				SetColor(BLACK);
    			ClearDevice();

                ClrState(pObj, BTN_PRESSED);            // clear the pressed state, will be shown only when redrawn
                blSlideShowDelay = 0;                   // force slide show to immediately start
                return (0);
            }

            return (1);

        case ID_JPGLISTBOX:
            if(pMsg->uiEvent == EVENT_MOVE)
            {
                pMsg->uiEvent = EVENT_PRESS;            // change event for listbox

                // Process message by default
                LbMsgDefault(objMsg, (LISTBOX *)pObj, pMsg);

                // Set new list box position
                SldSetPos(pSlider, LbGetCount(pListBox) - LbGetFocusedItem(pListBox) - 1);
                SetState(pSlider, SLD_DRAW_THUMB);
                pMsg->uiEvent = EVENT_MOVE;             // restore event for listbox
            }
            else if(pMsg->uiEvent == EVENT_PRESS)
            {

                // call the message default processing of the list box to select the item
                LbMsgDefault(objMsg, (LISTBOX *)pObj, pMsg);
            }
            else if(pMsg->uiEvent == EVENT_RELEASE)
            {

                // check which item was selected and display appropriate screen
                pItemSel = LbGetSel(pListBox, NULL);    // get the selected item
                if(aFolderElement[pItemSel->data].blFolder == 1)
                {
                    if(FSchdir(aFolderElement[pItemSel->data].Name) == 0)
                    {
                        FillNewElements();
                        return (1);
                    }
                }
                else if(aFolderElement[pItemSel->data].blText == 0)
                {
                    IMG_FILE    *pImgFile = IMG_FOPEN(aFolderElement[pItemSel->data].Name, "rb");
                    if(pImgFile != NULL)
                    {
                        blImageOnScreen = 1;
                        // initialize the screen	
					    SetColor(BLACK);
    					ClearDevice();

                        if
                        (
                            ImageDecode
                                (
                                    pImgFile,
                                    aFolderElement[pItemSel->data].ImgType,
                                    0,
                                    0,
                                    IMG_SCREEN_WIDTH,
                                    IMG_SCREEN_HEIGHT,
                                    (IMG_DOWN_SCALE | IMG_ALIGN_CENTER),
                                    NULL,
                                    NULL
                                )
                        )
                        {
                            DisplayErrorInfo();
                        }

                        IMG_FCLOSE(pImgFile);
                    }
                }
            }

            // The message was processed. To avoid other objects processing the 
            // processed message reset the message.
            pMsg->uiEvent = EVENT_INVALID;
            return (0);

        case ID_SLD4LB:
        	
        	if((objMsg == SLD_MSG_INC) || (objMsg == SLD_MSG_DEC)) 
            {   // check slider was touched.

	            // Process message by default
	            SldMsgDefault(objMsg, (SLIDER *)pObj, pMsg);
	
	            // Set new list box position
	            if(LbGetFocusedItem(pListBox) != LbGetCount(pListBox) - SldGetPos(pSlider))
	            {
	                LbSetFocusedItem(pListBox, LbGetCount(pListBox) - SldGetPos(pSlider));
	                SetState(pListBox, LB_DRAW_ITEMS);
	            }
	            
	        }

            // The message was processed
            return (0);

        case ID_BTNUP4LB:                               // slider up button was pressed
            if(objMsg == BTN_MSG_RELEASED)
            {
				// check if we have reached the very first then stay there.
	            if (LbGetFocusedItem(pListBox) == 0)
	                LbSetFocusedItem(pListBox,0);
	            else    
                	LbSetFocusedItem(pListBox,LbGetFocusedItem(pListBox)-1);                
                SetState(pListBox, LB_DRAW_ITEMS);
                SldSetPos(pSlider, SldGetPos(pSlider) + 1);
                SetState(pSlider, SLD_DRAW_THUMB);
            }

            return (1);

        case ID_BTNDN4LB:                               // slider down button was pressed
            if(objMsg == BTN_MSG_RELEASED)
            {
	            // set all items to be not displayed
                pItemSel = pListBox->pItemList;
                while(pItemSel != NULL) {
                	pItemSel->status = 0;
                	pItemSel = pItemSel->pNextItem;
                }	
                LbSetFocusedItem(pListBox, LbGetFocusedItem(pListBox) + 1);
                SetState(pListBox, LB_DRAW_ITEMS);
                SldSetPos(pSlider, SldGetPos(pSlider) - 1);
                SetState(pSlider, SLD_DRAW_THUMB);
            }

            return (1);
    }

    return (1);
}
Beispiel #10
0
  Function:
    void TranslateMessageGeneric( GOL_MSG* msg )

  Description:
    This function translates the keypad message into the appropriate message
    for a generic, 4-button menu screen.  It can be used as the message
    processing function for any generic screen.

  Precondition:
    None

  Parameters:
    GOL_MSG * msg    - The current message information

  Returns:
    None

  Remarks:
    None
  ***************************************************************************/

void TranslateMessageGeneric( GOL_MSG * pMsg )
{

    if ((pMsg->uiEvent == EVENT_KEYSCAN) &&
        (pMsg->type    == TYPE_KEYBOARD) &&
        (pMsg->param1  == ID_TOUCH_PAD))
    {
        switch (pMsg->param2)
        {
            case SCAN_UP_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED | BTN_DRAW );
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED | BTN_DRAW );
                }
				else if (GetState( (BUTTON *)GOLFindObject( ID_THIRDROW ), BTN_PRESSED ) && !strcmp(pageInformation.title,"Demonstrations"))
				{
					ClrState( (BUTTON *)GOLFindObject( ID_THIRDROW ),    BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_THIRDROW ),    BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED | BTN_DRAW );
				}
                break;

            case SCAN_DOWN_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED | BTN_DRAW );
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED | BTN_DRAW );
                }
				else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ) && !strcmp(pageInformation.title,"Demonstrations"))
				{
					ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),    BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),    BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_THIRDROW ), BTN_PRESSED | BTN_DRAW );
				}
                break;

            case SCAN_RIGHT_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED | BTN_DRAW );
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED | BTN_DRAW );
                }
                break;

            case SCAN_LEFT_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED | BTN_DRAW );
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED |  BTN_DRAW );
                }
                break;

            case SCAN_UP_RELEASED:
                break;

            case SCAN_DOWN_RELEASED:
                break;

            case SCAN_RIGHT_RELEASED:
                break;

            case SCAN_LEFT_RELEASED:
                break;

            case SCAN_CR_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_RIGHT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_RIGHT;
                }
				else if (GetState( (BUTTON *)GOLFindObject( ID_THIRDROW ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_THIRDROW;
                }
                break;

            case SCAN_CR_RELEASED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_RIGHT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_RIGHT;
                }
				else if (GetState( (BUTTON *)GOLFindObject( ID_THIRDROW ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_THIRDROW;
                }
                break;

        }
    }
}
Beispiel #11
0
/*****************************************************************************
 * void CreateSecurityScreen(void)
 *****************************************************************************/
void CreateSecurityScreen(void)
{
    GOL_SCHEME *currentScheme;

    currentScheme = GFX_SchemeGetCurrentScheme();

    CreatePanelScreen();                    // This adds the widgets seen on the left of the screen

    SetState(GOLFindObject(PANEL_SCREEN_ID_SECURITY_BUT), BTN_DISABLED);

    if(GetState(GOLFindObject(PANEL_SCREEN_ID_COMFORT_BUT),BTN_DISABLED))
    {
        ClrState(GOLFindObject(PANEL_SCREEN_ID_COMFORT_BUT), BTN_DISABLED);
        SetState(GOLFindObject(PANEL_SCREEN_ID_COMFORT_BUT),BTN_DRAW);
    }

    if(GetState(GOLFindObject(PANEL_SCREEN_ID_LIGHTING_BUT),BTN_DISABLED))
    {
        ClrState(GOLFindObject(PANEL_SCREEN_ID_LIGHTING_BUT), BTN_DISABLED);
        SetState(GOLFindObject(PANEL_SCREEN_ID_LIGHTING_BUT),BTN_DRAW);
    }

    if(GetState(GOLFindObject(PANEL_SCREEN_ID_ENERGY_USAGE_BUT),BTN_DISABLED))
    {
        ClrState(GOLFindObject(PANEL_SCREEN_ID_ENERGY_USAGE_BUT), BTN_DISABLED);
        SetState(GOLFindObject(PANEL_SCREEN_ID_ENERGY_USAGE_BUT),BTN_DRAW);
    }


    SetFont((void *) &FONTDEFAULT);
    SetColor(WHITE);
    OutTextXY(SECURITY_EB_ORIGIN_X + 70,SECURITY_EB_ORIGIN_Y -25, (XCHAR *)EnterPINStr);
    OutTextXY(SECURITY_BUTTON_ORIGIN,SECURITY_EB_ORIGIN_Y -25, (XCHAR *)SecurityOptionsStr);

    BtnCreate    //Disarmed
    (
        SERCURITY_SCREEN_ID_DISARMED_BUT,                         // button ID
        SECURITY_BUTTON_ORIGIN,
        SECURITY_EB_ORIGIN_Y,
        SECURITY_BUTTON_ORIGIN + (SECURITY_KEYSIZEX << 1),
        SECURITY_EB_ORIGIN_Y + 1 * SECURITY_KEYSIZEY,                                // dimension
        5,                                 // set radius
        BTN_DRAW,                           // draw a beveled button
        NULL,                               // no bitmap
        (XCHAR *)DisarmedStr,                 // "Button",     	// text
        currentScheme
    );

    BtnCreate    //Armed
    (
        SERCURITY_SCREEN_ID_ARMED_BUT,                         // button ID
        SECURITY_BUTTON_ORIGIN,
        SECURITY_EB_ORIGIN_Y + 1 * SECURITY_KEYSIZEY + 3,
        SECURITY_BUTTON_ORIGIN + (SECURITY_KEYSIZEX << 1),
        SECURITY_EB_ORIGIN_Y + 2 * SECURITY_KEYSIZEY,                                // dimension
        5,                                 // set radius
        BTN_DRAW,                           // draw a beveled button
        NULL,                               // no bitmap
        (XCHAR *)ArmedStr,                 // "Button",     	// text
        currentScheme
    );

    BtnCreate         //Sleeping
    (
        SERCURITY_SCREEN_ID_SLEEPING_BUT,                         // button ID
        SECURITY_BUTTON_ORIGIN,
        SECURITY_EB_ORIGIN_Y + 2 * SECURITY_KEYSIZEY +3,
        SECURITY_BUTTON_ORIGIN + (SECURITY_KEYSIZEX << 1),
        SECURITY_EB_ORIGIN_Y + 3 * SECURITY_KEYSIZEY,                                // dimension
        5,                                 // set radius
        BTN_DRAW,               // draw a beveled button
        NULL,                               // no bitmap
        (XCHAR *)SleepingStr,                 // "Button",     	// text
        currentScheme
    );

    BtnCreate         //Vacation
    (
        SERCURITY_SCREEN_ID_VACATION_BUT,                         // button ID
        SECURITY_BUTTON_ORIGIN,
        SECURITY_EB_ORIGIN_Y + 3 * SECURITY_KEYSIZEY +3,
        SECURITY_BUTTON_ORIGIN + (SECURITY_KEYSIZEX << 1),
        SECURITY_EB_ORIGIN_Y + 4 * SECURITY_KEYSIZEY,                                // dimension
        5,                                 // set radius
        BTN_DRAW,                           // draw a beveled button
        NULL,                               // no bitmap
        (XCHAR *)VacationStr,                 // "Button",     	// text
        currentScheme
    );

    BtnCreate       //Entertaining
    (
        SERCURITY_SCREEN_ID_ENTERTAINING_BUT,                         // button ID
        SECURITY_BUTTON_ORIGIN,
        SECURITY_EB_ORIGIN_Y + 4 * SECURITY_KEYSIZEY +3,
        SECURITY_BUTTON_ORIGIN + (SECURITY_KEYSIZEX << 1),
        SECURITY_EB_ORIGIN_Y + 5 * SECURITY_KEYSIZEY,                                // dimension
        5,                                 // set radius
        BTN_DRAW,                           // draw a beveled button
        NULL,                               // no bitmap
        (XCHAR *)EntertainingStr,                 // "Button",     	// text
        currentScheme
    );

    EbCreate
    (
        SERCURITY_SCREEN_ID_CODE_EDIT_BOX,    // ID
        SECURITY_KEYSTARTX+5,
        SECURITY_KEYSTARTY + 1,
        SECURITY_KEYSTARTX + (3 * SECURITY_KEYSIZEX)-5,
        SECURITY_KEYSTARTY + 1 * SECURITY_KEYSIZEY - GOL_EMBOSS_SIZE, // dimension
        EB_DRAW | EB_CARET | EB_FOCUSED,            // will be dislayed after creation
        NULL,
        17,
        currentScheme
    );                              // default GOL scheme


    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_0_BUT,              // ID
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 4 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 5 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[0],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_1_BUT,              // ID
        SECURITY_KEYSTARTX + 0 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 1 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 2 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[1],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_2_BUT,              // ID
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 1 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 2 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[2],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_3_BUT,              // ID
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 1 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 3 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 2 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[3],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_4_BUT,              // ID
        SECURITY_KEYSTARTX + 0 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 2 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 3 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[4],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_5_BUT,              // ID
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 2 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 3 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[5],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_6_BUT,              // ID
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 2 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 3 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 3 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[6],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_7_BUT,              // ID
        SECURITY_KEYSTARTX + 0 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 3 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 4 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[7],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_8_BUT,              // ID
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 3 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 4 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[8],              // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_KEYPAD_9_BUT,              // ID
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 3 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 3 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 4 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        padNumbers[9],              // text
        currentScheme
    );                              // alternative GOL scheme

    BtnCreate
    (
        SERCURITY_SCREEN_ID_CLEAR_BUT,                // ID
        SECURITY_KEYSTARTX + 0 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 4 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 1 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 5 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        (XCHAR *)ClearStr,             // text
        currentScheme
    );                              // alternative GOL scheme
    BtnCreate
    (
        SERCURITY_SCREEN_ID_ENTER_BUT,                   // ID
        SECURITY_KEYSTARTX + 2 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 4 * SECURITY_KEYSIZEY,
        SECURITY_KEYSTARTX + 3 * SECURITY_KEYSIZEX,
        SECURITY_KEYSTARTY + 5 * SECURITY_KEYSIZEY,   // dimension
        5,
        BTN_DRAW,                   // will be dislayed after creation
        NULL,                       // no bitmap
        (XCHAR *)EnterStr,             // text
        currentScheme
    );                              // alternative GOL scheme


}
Beispiel #12
0
/****************************************************************************
  Function:
    void TranslateMessageGeneric( GOL_MSG* msg )
  Description:
    This function translates the keypad message into the appropriate message
    for a generic, 4-button menu screen.  It can be used as the message
    processing function for any generic screen.
  Precondition:
    None
  Parameters:
    GOL_MSG * msg    - The current message information
  Returns:
    None
  Remarks:
    None
  ***************************************************************************/
void TranslateMessageGeneric( GOL_MSG * pMsg )
{

    if ((pMsg->uiEvent == EVENT_KEYSCAN) &&
        (pMsg->type    == TYPE_KEYBOARD) &&
        (pMsg->param1  == ID_ACCELEROMETER_PAD))
    {
        switch (pMsg->param2)
        {
            case SCAN_UP_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED | BTN_DRAW );
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
	                {
	                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED );
	                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_DRAW );
	                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED | BTN_DRAW );
                    }
                }
                break;

            case SCAN_DOWN_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED | BTN_DRAW );
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
	                {
	                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED );
	                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_DRAW );
	                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED | BTN_DRAW );
	                }
                }
                break;

            case SCAN_RIGHT_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
	                {
	                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED );
	                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_DRAW );
	                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED | BTN_DRAW );
                    }
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED | BTN_DRAW );
                }
                break;

            case SCAN_LEFT_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
	                {
	                    ClrState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_PRESSED );
	                    SetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ),    BTN_DRAW );
	                    SetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ),     BTN_PRESSED | BTN_DRAW );
	                }
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    ClrState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_DRAW );
                    SetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ),  BTN_PRESSED |  BTN_DRAW );
                }
                break;

            case SCAN_UP_RELEASED:
                break;

            case SCAN_DOWN_RELEASED:
                break;

            case SCAN_RIGHT_RELEASED:
                break;

            case SCAN_LEFT_RELEASED:
                break;

            case SCAN_CR_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
               	    	pMsg->param1 = ID_TOP_RIGHT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_RIGHT;
                }
                break;

            case SCAN_CR_RELEASED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
                    	pMsg->param1 = ID_TOP_RIGHT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_RIGHT;
                }
                break;
                
            case SCAN_CRA_PRESSED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
                    	pMsg->param1 = ID_TOP_RIGHT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_RIGHT;
                }
                break;

            case SCAN_CRA_RELEASED:
                if (GetState( (BUTTON *)GOLFindObject( ID_TOP_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_TOP_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_LEFT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_LEFT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_TOP_RIGHT ), BTN_PRESSED ))
                {
	                if(screenState != SCREEN_GAMES)
                    	pMsg->param1 = ID_TOP_RIGHT;
                }
                else if (GetState( (BUTTON *)GOLFindObject( ID_BOTTOM_RIGHT ), BTN_PRESSED ))
                {
                    pMsg->param1 = ID_BOTTOM_RIGHT;
                }
                break;
        }
    }
}