⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win_key_input.c

📁 EMU_FTAbox_ref441328_code_source ali m3327
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <os/tds2/itron.h>
#include <osal/osal.h>
#include <api/libgui/osd_lib.h>
#include <api/libc/printf.h>
#include <api/libc/string.h>
#include "osd_config.h"
#include "win_com.h"
#include "ap_key_input.h"
#include "ap_root.h"
#include "keydata.h"		//djg keyedit
#include "win_key_input.h"
#include "win_menu.h"
#include "ap_small_keyboard.h"

BYTE win_key_input_menu_proc(UINT32 msgtype, UINT32 msgSubType, UINT32 msgcode, struct WinReturnInfo * p_Return_Info);
static UINT8 win_key_input_proc(OBJECTHEAD* pObj, UINT32 vkey, UINT32 para1, UINT32 para2);
static VKEY win_key_input_keymap(OBJECTHEAD* pObj, UINT32 vkey);


WINDOW 		win_key_input;
BAR			key_input_bar;
TEXTFIELD	key_input_txt[MAX_CAS_KEY_NUMBER],key_input_title,ki_title_txt1,ki_title_txt2,key_background;

static TEXTFIELD 	key_input_help_txt[3];
static XBITMAP		key_input_help_icon[3];

OBJ_INFO ki_title_obj_info= {(OBJECTHEAD *)(&key_input_title),	IN_TEXTFIELD};
OBJ_INFO ki_title_obj_info2= {(OBJECTHEAD *)(&ki_title_txt2),	IN_TEXTFIELD};
CONTAINER	win_key_input_container,win_ki_container[MAX_CAS_KEY_NUMBER],win_ki_title_container;
TEXTFIELD	win_key_input_txt,win_ki_first_str[MAX_CAS_KEY_NUMBER],win_ki_second_str[MAX_CAS_KEY_NUMBER];

TEXTFIELD 	win_ki_PROVIDER_str[MAX_CAS_KEY_NUMBER],win_ki_ID_str[MAX_CAS_KEY_NUMBER];
TEXTFIELD	win_ki_KEYTYPE_str[MAX_CAS_KEY_NUMBER];
UINT16 key_help_icon[3]={IM_COLORBUTTON2_YELLOW,IM_COLORBUTTON2_BLUE,IM_COLORBUTTON2_RED};
UINT16 key_help_txt[3]={RS_COMMON_SAVE,RS_SORT_DEFAULT,RS_EDIT_INDEX};
UINT16	win_ki_title_str[40];
UINT16	win_ki_key_str[5];
struct WinReturnInfo * p_ui_ki_ReturnInfo;

OBJ_INFO ki_obj_info[MAX_CAS_KEY_NUMBER]=
{
	{(OBJECTHEAD *)(&win_ki_second_str[0]),	IN_TEXTFIELD},
	{(OBJECTHEAD *)(&win_ki_second_str[1]),	IN_TEXTFIELD},
	{(OBJECTHEAD *)(&win_ki_second_str[2]),	IN_TEXTFIELD},
	{(OBJECTHEAD *)(&win_ki_second_str[3]),	IN_TEXTFIELD},
	{(OBJECTHEAD *)(&win_ki_second_str[4]),	IN_TEXTFIELD},
	{(OBJECTHEAD *)(&win_ki_second_str[5]),	IN_TEXTFIELD},
	{(OBJECTHEAD *)(&win_ki_second_str[6]),	IN_TEXTFIELD},
};

cas_key_data	*p_ui_key_input_data;

extern UINT8	g_KI_CAS_type;
extern UINT8	g_Garosu_LineNumber;
extern UINT8	g_Garosu_TotalNumber;


void win_key_input_get_title_str()
{
	UINT8	temp[40];
	sprintf(temp,"  PROVIDER    ID  ");
	ComAscStr2Uni(temp, win_ki_title_str);
}

void win_key_input_get_key_str()
{
	UINT8	temp[10];

	sprintf(temp,"KEY");
	ComAscStr2Uni(temp, win_ki_key_str);
}



void win_key_input_redraw_list()
{
	int i;
	for(i=0;i<MAX_CAS_KEY_NUMBER;i++)
	{
		if(OSD_GetFocusObjectID((VP)&win_key_input)==OSD_GetObjectPosi((VP)&win_ki_container[i]))
		{
			OSD_TrackContainer(&win_ki_container[i], OSD_FLASHDATA);
		}
		else
		{
			OSD_DrawContainer(&win_ki_container[i], OSD_FLASHDATA);
		}
	}
}

void win_key_input_display(UINT32 para1, struct WinReturnInfo *para2)
{
	WINDOW* pW = &win_key_input;
	UINT16 i;
	// open window
	OSD_OpenWindow(OSD_GetSysDefXScreen(), pW, WIN_KEY_INPUT_L, WIN_KEY_INPUT_T, WIN_KEY_INPUT_W, WIN_KEY_INPUT_H, OSD_NORMALCTL);
	OSD_SetColor(pW, KEYEDIT_BACKGROUND, 0, 0,0);
	//OSD_AddTextField(pW,&key_background,0, 0, WIN_KEY_INPUT_W, WIN_KEY_INPUT_H-50);
	//OSD_SetColor((VP)&key_background, MENU_EPG_CHN_TXT_SH, 0, 0,0);


	// add content
	OSD_AddContainer(pW, &win_key_input_container, WIN_KEY_INPUT_CONTAINER_L, WIN_KEY_INPUT_CONTAINER_T, WIN_KEY_INPUT_CONTAINER_W, WIN_KEY_INPUT_CONTAINER_H);
	OSD_SetColor((VP)(&win_key_input_container), KEYEDIT_KEY_SH,0, 0, 0);
	wincom_set_container_txt(&win_key_input_container, &win_key_input_txt,0);
	OSD_SetColor((VP) &win_key_input_txt, KEYEDIT_KEY_SH, 0, 0, 0);
	OSD_SetTextFieldContent(&win_key_input_txt, 0, (UINT8*)p_ui_key_input_data->p_CAS_StrTab, NULL);
	wincom_add_container_obj(&win_key_input_container, &ki_title_obj_info);
	OSD_SetColor((VP) &key_input_title, KEYEDIT_KEY_SH, 0, 0, 0);
	OSD_SetTextFieldContent(&key_input_title, 0, (UINT8*)p_ui_key_input_data->p_Type_StrTab, NULL);

	win_key_input_txt.head.frame.uWidth-=30;
	key_input_title.head.frame.uLeft-=30;
	key_input_title.head.frame.uWidth+=30;

	win_key_input_get_title_str();
	win_key_input_get_key_str();
	OSD_AddContainer(pW, &win_ki_title_container, WIN_KEY_INPUT_CONTAINER_L, 10+WIN_KEY_INPUT_CONTAINER_T + WIN_KEY_INPUT_CONTAINER_H, WIN_KEY_INPUT_CONTAINER_W, WIN_KEY_INPUT_CONTAINER_H);
	OSD_SetColor((VP)(&win_ki_title_container), FIND_KEY_HL_COLOR,0, 0, 0);
	wincom_set_container_txt(&win_ki_title_container, &ki_title_txt1,0);
	OSD_SetTextFieldContent(&ki_title_txt1, 0, (UINT8*)win_ki_title_str, NULL);
	OSD_SetColor((VP) &ki_title_txt1, KEYEDIT_KEY_NOBACK_SH, FIND_KEY_HL_COLOR, 0, 0);
	wincom_add_container_obj(&win_ki_title_container, &ki_title_obj_info2);
	OSD_SetTextFieldContent(&ki_title_txt2, 0, (UINT8*)win_ki_key_str, NULL);
	OSD_SetColor((VP) &ki_title_txt2, KEYEDIT_KEY_NOBACK_SH, FIND_KEY_HL_COLOR, 0, 0);
	

	ki_title_txt1.head.frame.uWidth-=30;
	ki_title_txt2.head.frame.uLeft-=30;
	ki_title_txt2.head.frame.uWidth+=30;

	for(i=0;i<MAX_CAS_KEY_NUMBER;i++)
	{
		OSD_AddContainer(pW, &win_ki_container[i], WIN_KEY_INPUT_CONTAINER_L, WIN_KEY_INPUT_CONTAINER_T +40+ (WIN_KEY_INPUT_CONTAINER_H+6)*(i+1), WIN_KEY_INPUT_CONTAINER_W, WIN_KEY_INPUT_CONTAINER_H);
		OSD_SetColor((VP)(&win_ki_container[i]), KEYEDIT_KEY_SH, FIND_KEY_HL_COLOR,0, 0);
		//wincom_set_container_txt(&win_ki_container[i], &win_ki_first_str[i],0);

		OSD_SetContainerContent(&win_ki_container[i], (OBJECTHEAD *)&win_ki_first_str[i], IN_TEXTFIELD, 
									0, 0,50,WINSMALL_CONTAINER_TXT_HEIGHT);		
		OSD_SetTextFieldStyle(&win_ki_first_str[i], LEFT_ASSIGN|VMID_ASSIGN, 5, 0);		
		OSD_SetTextFieldContent(&win_ki_first_str[i], 0, (UINT8*)p_ui_key_input_data->p_FirstStrTab[i], NULL);		
		OSD_SetColor((VP)(&win_ki_first_str[i]), KEYEDIT_KEY_NOBACK_SH, KEYEDIT_KEY_NOBACK_SH,0, 0);
		
		OSD_SetContainerContent(&win_ki_container[i], (OBJECTHEAD *)&win_ki_PROVIDER_str[i], IN_TEXTFIELD, 
									50, 0,100,WINSMALL_CONTAINER_TXT_HEIGHT);		
		OSD_SetTextFieldStyle(&win_ki_PROVIDER_str[i], LEFT_ASSIGN|VMID_ASSIGN, 0, 0);		
		OSD_SetTextFieldContent(&win_ki_PROVIDER_str[i], 0, (UINT8*)p_ui_key_input_data->p_StrINDEX[i], NULL);		
		OSD_SetColor((VP)(&win_ki_PROVIDER_str[i]), KEYEDIT_KEY_NOBACK_SH, KEYEDIT_KEY_NOBACK_SH,0, 0);
		
		OSD_SetContainerContent(&win_ki_container[i], (OBJECTHEAD *)&win_ki_ID_str[i], IN_TEXTFIELD, 
									180, 0,50,WINSMALL_CONTAINER_TXT_HEIGHT);		
		OSD_SetTextFieldStyle(&win_ki_ID_str[i], LEFT_ASSIGN|VMID_ASSIGN, 0, 0);		
		OSD_SetTextFieldContent(&win_ki_ID_str[i], 0, (UINT8*)p_ui_key_input_data->p_StrID[i], NULL);		
		OSD_SetColor((VP)(&win_ki_ID_str[i]), KEYEDIT_KEY_NOBACK_SH, KEYEDIT_KEY_NOBACK_SH,0, 0);

#if 0		
		OSD_SetContainerContent(&win_ki_container[i], (OBJECTHEAD *)&win_ki_KEYTYPE_str[i], IN_TEXTFIELD, 
									180, 0,70,WINSMALL_CONTAINER_TXT_HEIGHT);		
		OSD_SetTextFieldStyle(&win_ki_KEYTYPE_str[i], LEFT_ASSIGN|VMID_ASSIGN, 0, 0);		
		OSD_SetTextFieldContent(&win_ki_KEYTYPE_str[i], 0, (UINT8*)p_ui_key_input_data->p_Strkeytype[i], NULL);		
		OSD_SetColor((VP)(&win_ki_KEYTYPE_str[i]), KEYEDIT_KEY_NOBACK_SH, KEYEDIT_KEY_NOBACK_SH,0, 0);

#endif		
		wincom_add_container_obj(&win_ki_container[i], &ki_obj_info[i]);
		//OSD_SetColor((VP)&win_ki_second_str[i], WSTL_CONTAINER_CTRL_SH, WIN_KEY_INPUT_HL,0,0);
		OSD_SetColor((VP)&win_ki_second_str[i], KEYEDIT_KEY_NOBACK_SH, KEYEDIT_KEY_NOBACK_SH,0,0);
		OSD_SetTextFieldStyle(&win_ki_second_str[i], LEFT_ASSIGN|VMID_ASSIGN,0,0);
		OSD_SetTextFieldContent(&win_ki_second_str[i], 0, (UINT8*)p_ui_key_input_data->p_SecondStrTab[i], NULL);

	
		win_ki_second_str[i].head.frame.uLeft-=30;
		win_ki_second_str[i].head.frame.uWidth+=30;
		OSD_SetPosi((VP)&win_ki_container[i],i + 1, i + 1, i + 1, (i -1 + MAX_CAS_KEY_NUMBER)%MAX_CAS_KEY_NUMBER + 1,  (i + 1)%MAX_CAS_KEY_NUMBER + 1);
	}

	for(i=0;i<1;i++)
	{
		OSD_AddBitmap(pW,&key_input_help_icon[i],WIN_KEY_HELP_L+i*(WIN_KEY_HELP_W+30),WIN_KEY_HELP_T,24,WIN_KEY_HELP_H);
		OSD_SetBitmapContent(&key_input_help_icon[i], LIB_ICON, key_help_icon[i]);	
		OSD_AddTextField(pW, &key_input_help_txt[i],WIN_KEY_HELP_L+24+i*(WIN_KEY_HELP_W+30),WIN_KEY_HELP_T,WIN_KEY_HELP_W,WIN_KEY_HELP_H);
		OSD_SetTextFieldContent(&key_input_help_txt[i], key_help_txt[i], NULL,NULL);
		OSD_SetTextFieldStyle(&key_input_help_txt[i], LEFT_ASSIGN|VMID_ASSIGN, 0, 0);
		OSD_SetColor((VP)&key_input_help_txt[i], KEYEDIT_KEY_SH, 0, 0, 0);
	}	

	OSD_SetKeyMap((VP)pW, win_key_input_keymap);
	OSD_SetProc((VP)pW, win_key_input_proc);
	// set focus  obj id
	OSD_SetFocusObjectID(pW, 1);
	ap_key_input_set_listindex(1);
}

static VKEY win_key_input_keymap(OBJECTHEAD* pObj, UINT32 vkey)
{
	VKEY vact = VACT_PASS;
	switch(vkey)
	{
		case V_KEY_UP:
			vact = VACT_WIN_UP;
			break;
		case V_KEY_DOWN:
			vact = VACT_WIN_DOWN;
			break;
		case V_KEY_LEFT:
			vact = VACT_PAGEUP;
			break;
		case V_KEY_RIGHT:
			vact = VACT_PAGEDOWN;
			break;
		case V_KEY_EXIT:
		case V_KEY_MENU:
			vact = VACT_WIN_CLOSE;
			break;
		case V_KEY_ENTER:
			vact = VACT_WIN_ENTER;
			break;
	#if 0
		case V_KEY_COLOR2:		//red key->edit INDEX		
			vact = VACT_NUM_0;
			break;
	
		case V_KEY_1://edit ID
			vact = VACT_NUM_1;
			break;
	#endif
		
	}

	return vact;
}

void win_key_input_recover()
{
	WINDOW* pW = &win_key_input;

	ap_key_input_save_key(win_key_input.FocusObjectID-1);

	wincom_display_win(pW, FALSE);
	OSD_UpdateWinVscr(pW,FALSE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -