// lMouseDown //--------------------------------------------------------------------------- void ImageSelectorView::lMouseDown(const iXY &pos) { cView::lMouseDown(pos); if (getPressedButton() >= 0) return; selectedImage = findImageContaining(pos); } // end lMouseDown
void keypad_thread(void const *argument){ st_system_state state = ST_INIT ; err_type error = NONE; keypad_state kp_state = WAIT_KEY; int pressedNumber = -1; while (1) { switch ( state ){ case ST_INIT : /**************************************/ /************ initialization **********/ /**************************************/ alpha_num_kp_init(); /**************************************/ state = ST_IDLE ; break ; case ST_IDLE : /**************************************/ /**************** idle ****************/ /**************************************/ state = ST_RUNNING ; /**************************************/ break ; case ST_RUNNING :{ /**************************************/ /***************** run ****************/ /**************************************/ switch (kp_state){ case WAIT_KEY : pressedNumber = getPressedButton(); if(pressedNumber == 1 || pressedNumber == 2 || pressedNumber == 10 || pressedNumber == 11 ){ kp_state = ACTION; } break ; case ACTION : /* Create message */ osMessagePut(kp_mqueue, (uint32_t)pressedNumber, osWaitForever); kp_state = IDLE; break ; case IDLE :{ int tempPress = getPressedButton(); if(tempPress != pressedNumber){ kp_state = WAIT_KEY; pressedNumber = -1; } break ; } } /**************************************/ break ; } case ST_ERROR : /**************************************/ /**************** error ***************/ /**************************************/ switch ( error ){ case NONE : //You didn't set error type... break ; case ERR_ERROR_1 : break ; case ERR_ERROR_2 : break ; case ERR_ERROR_3 : break ; case ERR_ERROR_4 : break ; } /**************************************/ break ; } delay(200); } }