Ejemplo n.º 1
0
static void ConvertValue2String(PEDIT_FIELD pCtrl,UINT16* pString, UINT32 dwValue, PEDIT_PATTERN pPattern)
{
	UINT32 i, j, len, cnt;
	UINT32 dwTemp = 1;
	UINT16 wSep;
	UINT32 status = OSD_GetEditFieldStatus(pCtrl);

#if EDITFIELD_SUPPORT_TIME
	if('t' == pPattern->bTag || 'T' == pPattern->bTag )
	{
		UINT16 wsNum[8], wsSep[2];// = {0};
		char *pfmt = m_fmtDT[pPattern->dt.bFormat];

		for(i=0; i<pPattern->bLen; i++)
			dwTemp *= 10;
		pString[0] = 0;
		wSep = (UINT16)(m_Sep[pPattern->dt.bSep]);
		for(i=0, len=0; i<STRLEN(pfmt); i+=2)
		{
			cnt = pfmt[i+1] - '0';
			for(j=0; j<cnt; j++)
				dwTemp /= 10;
			len += ComInt2UniStr(&pString[len], dwValue/dwTemp, cnt);
			if(dwTemp > 1)
			//pString[len++] = wSep;
				SetUniStrCharAt(&pString[len++], wSep,0);
			dwValue %= dwTemp;
		}

		if(pPattern->bTag=='T')	
		{
			SetUniStrCharAt(&pString[len+2], 'M',0);
			SetUniStrCharAt(&pString[len], ' ',0);//space

			if (status == SELECT_STATUS || (status == EDIT_STATUS && pCtrl->bCursor == (len+1)))
				SetUniStrCharAt(&pString[len+1], (getTimeMode() ? 'P' : 'A'),0);
			len += 3;
		}
		pString[len++] = 0;
	}
	else
#endif
	if(pPattern->bTag == 'i')
	{
		wSep = (UINT16)(m_Sep[pPattern->ip.bSep]);
		for(i = 0,len = 0; i < 4; i++)
		{
			len += ComInt2UniStr(&pString[len], (UINT8)(dwValue>>((3-i)*8)), 3);
			if(i < 3)
				SetUniStrCharAt(&pString[len++], wSep,0);
		}
		pString[len++] = 0;
	}
Ejemplo n.º 2
0
static UINT32 AutoCorrectIP(UINT16 *pString, UINT16 pos, UINT8 num)
{
	UINT32 value;
	UINT32 offset = pos%4;
	
	if(!ConvertIP2int2(pString, &value))
	{
		if(offset == 0)
		{
			if((value/100) > 3)
			{
				// error, do nothing.
				return FALSE;
			}
			else
			{
				SetUniStrCharAt(pString,'0',pos+1);
				SetUniStrCharAt(pString,'0',pos+2);
			}
		}
		else if(offset == 1)
		{
			UINT32 tens = (value%100)/10;
			if(tens > 5)
			{
				// error, do nothing.
				return FALSE;
			}
			else
			{
				SetUniStrCharAt(pString,'0',pos+1);
			}
		}
		return TRUE;
	}
	return FALSE;
}
Ejemplo n.º 3
0
void win_time_set_time_zone_citys(BOOL update)
{
    POBJECT_HEAD pObj =  (POBJECT_HEAD)&time_item_con2;
    MULTI_TEXT* mtxt = &time_mtxt_zone_city;

    TEXT_CONTENT* txtcont = timezone_mtxt_content;

    UINT8 bAction;
    struct time_zone_name* time_zone;
    INT32 i,hoffset,moffset,str_len;

    txtcont->bTextType = STRING_UNICODE;
    txtcont->text.pString = len_display_str;

    if(OSD_CheckAttr(pObj, C_ATTR_INACTIVE))
        ComAscStr2Uni("", len_display_str);
    else
    {
        sys_data_gmtoffset_2_hmoffset(&hoffset,&moffset);
        time_zone = get_time_zone_name(hoffset, moffset);
        if(time_zone == NULL)
            ComAscStr2Uni("", len_display_str);
        else
        {
            str_len = 0;
            for(i=0; i<time_zone->namecnt; i++)
            {
                if(i!=0)
                {
                    str_len = ComUniStrLen(len_display_str);
                    SetUniStrCharAt(len_display_str,',', str_len);
                    str_len++;
                }
                ComAscStr2Uni(time_zone->city_name[i], &len_display_str[str_len]);
            }
        }
    }

    if(update)
        OSD_DrawObject((POBJECT_HEAD)mtxt, C_UPDATE_ALL);

}
Ejemplo n.º 4
0
static PRESULT find_btn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;    
	UINT8 i,bID;
	UINT32 str_len;
	char ch,str_temp[2];

	bID = OSD_GetObjID(pObj);
	switch(event)
	{
		case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		ret = PROC_LOOP;
		str_len = ComUniStrLen(input_name_str);
	    
		if(unact == VACT_DEL || (unact == VACT_ENTER && key_chars[bID - 1] == 0x7F) )   /* DEL */
		{
			if(str_len>0)
			{
				input_name_str[str_len-1] = 0;
				OSD_DrawObject((POBJECT_HEAD)&find_input, C_UPDATE_ALL);
				if(!edit_keyboard_flag)
				{
					input_callback((UINT8*)input_name_str);                
				}
			}
		}
		else if(unact == VACT_OK || (unact == VACT_ENTER && key_chars[bID - 1] == 0xFF) ) /* OK */
		{
			check_ok = TRUE;
			ret = PROC_LEAVE;
			if(name_valid_func != NULL)
			{
				if(name_valid_func(input_name_str) == 0)
				{
					ret = PROC_LEAVE;				
				}
				else
				{
					ret = PROC_LOOP;
				}
			}
		}
		else if(unact == VACT_ENTER)
		{
			ch = key_chars[bID - 1];
			if(str_len < MAX_INPUT_STR_LEN)
			{
				SetUniStrCharAt(input_name_str,ch,str_len);
				input_name_str[str_len + 1] = 0;
				OSD_DrawObject((POBJECT_HEAD)&find_input, C_UPDATE_ALL);
				if(!edit_keyboard_flag)
				{
				        input_callback((UINT8*)input_name_str);
				}
			}
		}
		else if(unact == VACT_CAPS)
		{
			str_temp[1] = '\0';
			for(i = 0;i < CHRACTER_CNT;i++)
			{
				if((key_chars[i] >= 'a') && (key_chars[i] <= 'z'))
				{
					key_chars[i] = key_chars[i] - ('a' - 'A');
				}
				else if((key_chars[i] >= 'A') && (key_chars[i] <= 'Z'))
				{
					key_chars[i] = key_chars[i] + ('a' - 'A');
				}
				str_temp[0] = key_chars[i];
				OSD_SetTextFieldContent(&find_txt_chars[i], STRING_ANSI,(UINT32)str_temp);
			}
			OSD_TrackObject((POBJECT_HEAD)&g_win_find, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);
			//draw_caps_colbtn_ext(COLBTN_L,  COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW);
			//draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED);
			//draw_ok_colbtn_ext(COLBTN_L + 240,COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE);

    		draw_caps_colbtn_ext(COLBTN_L,  COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW);
    		draw_del_colbtn_ext(COLBTN_L + 120,           COLBTN_T, 1,IM_EPG_COLORBUTTON_RED);
    		draw_ok_colbtn_ext(COLBTN_L + 240,       COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE);
        }
		break;
	}
	return ret;
}
Ejemplo n.º 5
0
static PRESULT wifi_password_btn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	VACTION unact;    
	UINT8 i,bID;
	UINT32 str_len;
//	char ch,str_temp[2];
	char ch;
	TEXT_FIELD	*txt;
	EDIT_FIELD	*edf;

	bID = OSD_GetObjID(pObj);
	switch(event)
	{
		case EVN_UNKNOWN_ACTION:
		unact = (VACTION)(param1>>16);
		ret = PROC_LOOP;
		
		wifi_password_str_len = ComUniStrLen(wifi_password_str);
		
		if(unact == VACT_DEL || (unact == VACT_ENTER && wifi_password_key_chars[bID - 1] == 0x7F) )   /* DEL */
		{
			if(wifi_password_str_len>0)
			{

				wifi_password_str_len--;

				wifi_password_str[wifi_password_str_len] = 0;

				if((wifi_password_str_len)>MAX_DISPLAY_STR_LEN)
				{
					wifi_password_display_start_ptr=(wifi_password_str_len)-MAX_DISPLAY_STR_LEN;
				}
				else
				{
					wifi_password_display_start_ptr=0;
				}
				
				ComUniStrCopy(&wifi_password_display_buffer[0], &wifi_password_str[wifi_password_display_start_ptr]);

				OSD_SetTextFieldContent((POBJECT_HEAD)&wifi_password_input, STRING_UNICODE,(UINT32)&wifi_password_display_buffer[0]);				
				OSD_DrawObject((POBJECT_HEAD)&wifi_password_input, C_UPDATE_ALL);

			}
		}
		else if(unact == VACT_OK || (unact == VACT_ENTER && wifi_password_key_chars[bID - 1] == 0xFF) ) /* OK */
		{
			wifi_password_check_ok = TRUE;
			ret = PROC_LEAVE;
			if(name_valid_func != NULL)
			{
				if(name_valid_func(wifi_password_str) == 0)
				{
					ret = PROC_LEAVE;				
				}
				else
				{
					ret = PROC_LOOP;
				}
			}
		}
		else if(unact == VACT_ENTER)
		{

			ch = wifi_password_key_chars[bID - 1];
						
			if(wifi_password_str_len < MAX_INPUT_STR_LEN)				
			{
				SetUniStrCharAt(wifi_password_str,ch,wifi_password_str_len);
				wifi_password_str_len++;
				wifi_password_str[wifi_password_str_len] = 0;

				if(wifi_password_str_len>MAX_DISPLAY_STR_LEN)
				{
					wifi_password_display_start_ptr=wifi_password_str_len-MAX_DISPLAY_STR_LEN;
				}
				else
				{
					wifi_password_display_start_ptr=0;
				}

				ComUniStrCopy(&wifi_password_display_buffer[0], &wifi_password_str[wifi_password_display_start_ptr]);

				OSD_SetTextFieldContent((POBJECT_HEAD)&wifi_password_input, STRING_UNICODE,(UINT32)&wifi_password_display_buffer[0]);
				OSD_DrawObject((POBJECT_HEAD)&wifi_password_input, C_UPDATE_ALL);

			}

		}
		else if(unact == VACT_CAPS)
		{
#if 0
			str_temp[1] = '\0';
			for(i = 0;i < CHRACTER_CNT;i++)
			{
				if((wifi_password_key_chars[i] >= 'a') && (wifi_password_key_chars[i] <= 'z'))
				{
					wifi_password_key_chars[i] = wifi_password_key_chars[i] - ('a' - 'A');
				}
				else if((wifi_password_key_chars[i] >= 'A') && (wifi_password_key_chars[i] <= 'Z'))
				{
					wifi_password_key_chars[i] = wifi_password_key_chars[i] + ('a' - 'A');
				}
				str_temp[0] = wifi_password_key_chars[i];
				OSD_SetTextFieldContent(&wifi_password_txt_chars[i], STRING_ANSI,(UINT32)str_temp);
			}

#endif
			
				find_set_chars(1);
			OSD_TrackObject((POBJECT_HEAD)&g_win_wifi_password, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL);

			#ifdef OSD_12
			draw_caps_colbtn_ext(COLBTN_L + 120+KEY_L_GAP,           COLBTN_T, 1,IM_FIND_KEYBOARD_YEOLLW);
			draw_del_colbtn_ext(COLBTN_L-10,  COLBTN_T, 1,IM_FIND_KEYBOARD_RED);
			draw_ok_colbtn_ext(COLBTN_L + 280+KEY_L_GAP,       COLBTN_T, 1,IM_FIND_KEYBOARD_BLUE);
			#else
			draw_caps_colbtn_ext(COLBTN_L + 120+KEY_L_GAP,           COLBTN_T, 1,IM_FIND_KEYBOARD_YEOLLW);
			draw_del_colbtn_ext(COLBTN_L,  COLBTN_T, 1,IM_FIND_KEYBOARD_RED);
			draw_ok_colbtn_ext(COLBTN_L + 240+KEY_L_GAP,       COLBTN_T, 1,IM_FIND_KEYBOARD_BLUE);
			#endif
		}
		break;
	}

	return ret;
}