// lMouseDown
//---------------------------------------------------------------------------
void ImageSelectorView::lMouseDown(const iXY &pos)
{
    cView::lMouseDown(pos);

    if (getPressedButton() >= 0) return;

    selectedImage = findImageContaining(pos);

} // end lMouseDown
Пример #2
0
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);
	}
}