Exemplo n.º 1
0
void draw_menu(void)
{
	struct m_item* mi_child;
	uint8_t index_temp = 0;
	uint8_t i = 0;

	Disp_Clear();
	
	if(menu_type)
	{
		XY_Str(2,0,(*mi_entry).text);
		mi_child = (*mi_entry).child;
		XY_Str(1,1,(*mi_child).text);
		mi_child = (*mi_child).next;
		XY_Str(8,1,(*mi_child).text);
		
		if(arrow_Pos_H == 0)
			XY_Char(0,1,m_arrow);
		else
			XY_Char(7,1,m_arrow);
	}
	else
	{
		Locate_xy(0,0);
		Disp_Str((*mi_entry).text);
		
		Locate_xy(4,0);
		Disp_Char('.');
		Disp_Char('|');
		
		if(arrow_Pos_V == 0)
		{
			index_temp = mi_index;
			Disp_Char(m_arrow);
		}
		else
		{		
			index_temp = mi_index - 1;
			XY_Char(6,1,m_arrow);
		}
		
		Locate_xy(5,1);
		Disp_Char('|');
		
		mi_child = (*mi_entry).child;
		for(i=0;i<2;i++)
		{
			while((*mi_child).index != index_temp + i)
				mi_child = (*mi_child).next;
				
			XY_Str(7,i,(*mi_child).text);
			if((*mi_child).child == 0)
				XY_Char(15,i,'|');
			else
				XY_Char(15,i,'>');
		}
	}
}
Exemplo n.º 2
0
/**************************************************************   
*  函数说明:曝光设置函数                         *   
**************************************************************/  
void SetExposure(void)
{
    uint8 esc_flag = 0; 
    
    Disp_Char(0,5,expos_mode);
    UserChooseR = 1;
    Set_Cursor(1,0);
    while(!esc_flag)
    {
        if(time_10ms)  //10ms定时扫描键盘    
        { 
        time_10ms = 0; 
		*pRockValue=No_rock;
        rocker_type = Read_Rocker(pRockValue);
		if(rocker_type & keyPressed)
		{
			switch(*pRockValue)   
			{      
				case  Down:   
					  UserChooseR ++;   
					  if(UserChooseR == 4)   
					  {   
						UserChooseR = 1;   
					  }   
					  break;				  
				case  Enter:
					  TempMenu = MenuPoint;
					  Clear_Scr(); 
					  if(MenuPoint[UserChooseR].ChildrenMenus != NULL)   
					  {   
						  MenuPoint = MenuPoint[UserChooseR].ChildrenMenus;   
						  //UserChooseR = 0;   
						  //DisplayStart = 0;   
					  } 
					  ShowMenu(); 					  
                      if(TempMenu[UserChooseR].Subs != NULLSubs)   
					  {   
						 (*TempMenu[UserChooseR].Subs)();
                         Disp_Char(0,5,expos_mode);
					  } 
					  //Clear_Scr();					
					  break;		 
			}
			
            Set_Cursor(UserChooseR,0);
		}
        
		key_value= Read_keyboard();
		if(key_value != No_key)
		{
	        switch(key_value)
	        {
	        	case Esc:
						if(MenuPoint[UserChooseR].ParentMenus != NULL) 
						{ 
						 MenuPoint = MenuPoint[UserChooseR].ParentMenus; 
						 UserChooseR = 0; 
						 UserChooseC = 0; 
						} 
						esc_flag = 1;
						break;	
	        	case OK:
					    //Set_Mode(); 
                        switch(UserChooseR)
                        {
                            case 1:
                                    expos_mode = camera;
                                    break;
                            case 2:
                                    expos_mode = sensor;
                                    break;
                            case 3:
                                    expos_mode = fixed;
                                    break;                        
                        }
                        
	  				 	break;	
            }  
            
            Disp_Char(0,5,expos_mode);
            Set_Cursor(UserChooseR,0);
            
		}
        } 
               
    }
	Clear_Scr();
	ShowMenu();
    
}