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

📄 emc_channelmanage.c

📁 关于嵌入式PCB板UI的程序
💻 C
📖 第 1 页 / 共 4 页
字号:
			CM_ITEM_PROGNAME_X,CM_LABEL_HEADLINE_Y,CM_ITEM_PROGNAME_WIDTH,CM_ITEM_HEIGHT-4,
			"Program", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_ITEM_PROVIDER_X,CM_LABEL_HEADLINE_Y,CM_ITEM_PROVIDER_WIDTH,CM_ITEM_HEIGHT-4,
			"Provider", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);

		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_ITEM_NETWORKNAME_X,CM_LABEL_HEADLINE_Y,CM_ITEM_NETWORKNAME_WIDTH,CM_ITEM_HEIGHT-4,
			"Network", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_ITEM_FAVR_X,CM_LABEL_HEADLINE_Y,CM_ITEM_FAVR_WIDTH,CM_ITEM_HEIGHT-4,
			"Fav.", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_ITEM_LOCK_X,CM_LABEL_HEADLINE_Y,CM_ITEM_LOCK_WIDTH,CM_ITEM_HEIGHT-4,
			"Lock", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
	
	}
	else
	{
		EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_NETWORK_NUM_X,CM_LABEL_HEADLINE_Y,CM_NETWORK_NUM_W,CM_ITEM_HEIGHT-4,
			"No. ", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
		EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_NETWORK_NAME_X,CM_LABEL_HEADLINE_Y,CM_NETWORK_NAME_W,CM_ITEM_HEIGHT-4,
			"Network ", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
		EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_NETWORK_FREQ_X,CM_LABEL_HEADLINE_Y,CM_NETWORK_FREQ_W,CM_ITEM_HEIGHT-4,
			"Freq. ", JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
		EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_NETWORK_CHANS_X,CM_LABEL_HEADLINE_Y, CM_NETWORK_CHANS_W,CM_ITEM_HEIGHT-4,
			"Chan.s ",JLEFT,fontType,FALSE,
			whitecolor,bgCHcolor,bgCHcolor);
	}
		

	
}


/* draw backgroud panel of channel management window */
static void drawCHMbackgroud()
{
	STOSD_Color_t 	corner_color;	
	//EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
	EMCFont_Type fontType = FONT_MYFONT;
	
	corner_color.Type= STOSD_COLOR_TYPE_PALETTE;
	corner_color.Value.PaletteEntry = 0;	
	
	STOSD_FillRectangle(Handle_ProviewWindow,CM_X+2,CM_Y(iPAL_Mode)+2,CM_WIDTH-4,CM_HEIGHT-4, bgCHcolor);
	local_drawRoundWindowFrame1(Handle_ProviewWindow, CM_X,CM_Y(iPAL_Mode),CM_WIDTH,CM_HEIGHT,light,light,darkblue,darkblue,corner_color);

	/* headline */
	//STOSD_FillRectangle(Handle_ProviewWindow, CM_X+5, CM_Y(iPAL_Mode)+5, CM_WIDTH-10, CM_ITEM_HEIGHT-4 , whitecolor);
	EMC_DrawTextRectangle(Handle_ProviewWindow, 
		CM_X+4, CM_Y(iPAL_Mode)+5, CM_WIDTH-10, CM_ITEM_HEIGHT-8 , 
		"Channel Management", JLEFT,fontType,FALSE,
		blackcolor, whitecolor,whitecolor);
	
	//local_drawShadowLinewith2Color(Handle_ProviewWindow, CM_X+30,CM_Y+26, CM_WIDTH-60, TRUE,light, lightblue);

	/*draw label name*/
	EMC_DrawTextRectangle(Handle_ProviewWindow, 
		CM_X+3+10, CM_Y(iPAL_Mode)+30+3, CM_LABEL_WIDTH-6, CM_ITEM_HEIGHT, 
		"Program",JLEFT,fontType,FALSE,
		whitecolor, bgCHcolor, bgCHcolor);
	EMC_DrawTextRectangle(Handle_ProviewWindow, 
		CM_X+3+10+CM_LABEL_WIDTH, CM_Y(iPAL_Mode)+30+3, CM_LABEL_WIDTH-6, CM_ITEM_HEIGHT, 
		"Network",JLEFT,fontType,FALSE,
		whitecolor, bgCHcolor, bgCHcolor);
	
	/*label clientwindow*/
	#if 0
	local_drawRoundWindowFrame1(Handle_ProviewWindow, CM_X+10,CM_Y+80,CM_WIDTH-20,CM_HEIGHT-90,darkblue,blue,lightblue,light,bgCHcolor);		
	#else
	local_drawRoundWindowFrame2(Handle_ProviewWindow, CM_X+10,CM_Y(iPAL_Mode)+90,CM_WIDTH-20,CM_HEIGHT-100,lightblue,blue,darkblue);
	EMC_DrawTriangle(TRIANGLE_UP,CM_ITEM_X+CM_ITEM_WIDTH+2,CM_ITEM_Y+10, 17, lightbluecolor);
	EMC_DrawTriangle(TRIANGLE_DOWN,CM_ITEM_X+CM_ITEM_WIDTH+2,CM_ITEM_Y+10+175, 17, lightbluecolor);
	#endif
	/*help button window*/
	STOSD_FillRectangle(Handle_ProviewWindow, CM_X+2,CM_HELP_BUTTON_Y-3,CM_WIDTH-4,CM_ITEM_HEIGHT+2+30-6,bgCHcolor);
	local_drawRoundWindowFrame1(Handle_ProviewWindow, CM_X,CM_HELP_BUTTON_Y-5,CM_WIDTH,CM_ITEM_HEIGHT+6+30-6,light,light,darkblue,darkblue,corner_color);
}

/*Bottom help button*/
static void drawHelpButton()
{
	STOSD_Color_t greenbuttoncolor,bluebuttoncolor;
	//EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
	EMCFont_Type fontType = FONT_MYFONT;
	
	greenbuttoncolor.Type = STOSD_COLOR_TYPE_PALETTE;
	greenbuttoncolor.Value.PaletteEntry = 255;/*16;*/


	bluebuttoncolor.Type = STOSD_COLOR_TYPE_PALETTE;
	bluebuttoncolor.Value.PaletteEntry = 160;

	/*AL28 Start*/
	EMC_DrawTriangle(TRIANGLE_LEFT, CM_HELP_BUTTON_X+8,CM_HELP_BUTTON_Y+6-6, 17, orangecolor);
	EMC_DrawTriangle(TRIANGLE_RIGHT, CM_HELP_BUTTON_X+12,CM_HELP_BUTTON_Y+6-6, 17, orangecolor);
	EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_HELP_BUTTON_X+12+15, CM_HELP_BUTTON_Y+2-5,110, 24,
			"Prog./Network",JLEFT,fontType,FALSE,
			whitecolor, dialogcolor, dialogcolor);

	EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_HELP_BUTTON_X+12+15+125,CM_HELP_BUTTON_Y+2-5,30,24,
			"OK",JLEFT,fontType,FALSE,
			orangecolor, dialogcolor, dialogcolor);
	EMC_DrawTextRectangle(Handle_ProviewWindow,
			CM_HELP_BUTTON_X+12+15+120+32,CM_HELP_BUTTON_Y+2-5,60,24,
			"Display",JLEFT,fontType,FALSE,
			whitecolor, dialogcolor, dialogcolor);
	
	STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X-2,CM_HELP_BUTTON_Y+30-2-6,CM_HELP_BUTTON_W*4+4, CM_ITEM_HEIGHT-6+4, lightbluecolor);
	/*AL28 End*/

	/*AL28 Start*/
	STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , redcolor);
	STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1+1*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , greenbuttoncolor);
	STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1+2*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , yellowcolor);
	STOSD_FillRectangle(Handle_ProviewWindow, CM_HELP_BUTTON_X+1+3*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-6 , bluebuttoncolor);
	/*AL28 End*/
	if(bChannelManage)
	{
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+6,CM_HELP_BUTTON_Y+33-6,80, CM_ITEM_HEIGHT-9  , 
			" Favourate ",JLEFT,fontType,FALSE,
			whitecolor, redcolor,redcolor);	
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+27+1*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,60, CM_ITEM_HEIGHT-9 , 
			" Lock ",JLEFT,fontType,FALSE,
			whitecolor, greenbuttoncolor,greenbuttoncolor);	
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+2*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT -9, 
			"   ", JLEFT,fontType,FALSE,
			whitecolor, yellowcolor,yellowcolor);	
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+27+3*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,60, CM_ITEM_HEIGHT -9, 
			"Delete", JLEFT,fontType,FALSE,
			whitecolor, bluebuttoncolor,bluebuttoncolor);			
	}
	else
	{
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1,CM_HELP_BUTTON_Y+30-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-9 , 
			"     ", JLEFT,fontType,FALSE,
			whitecolor, redcolor,redcolor);	
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+1*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT-9 , 
			"      ", JLEFT,fontType,FALSE,
			whitecolor, greenbuttoncolor,greenbuttoncolor);	
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+2*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,CM_HELP_BUTTON_W-2, CM_ITEM_HEIGHT -9, 
			"    ", JLEFT,fontType,FALSE,
			whitecolor, yellowcolor,yellowcolor);	
		EMC_DrawTextRectangle(Handle_ProviewWindow, 
			CM_HELP_BUTTON_X+1+27+3*CM_HELP_BUTTON_W,CM_HELP_BUTTON_Y+33-6,60, CM_ITEM_HEIGHT -9, 
			"Delete", JLEFT,fontType,FALSE,
			whitecolor, bluebuttoncolor,bluebuttoncolor);				
	}
}

static void changeToChManage(void)
{
	int i = 0;
	int iNoOfMenuElements;
	MENU_DATA_STRUCT *p = NULL;

	//HL_STOSD_DrawBMP(Handle_ProviewWindow,CM_X,CM_Y,Bitmap_Struct_ChannelManage);
	/******************Draw Content********************/
	drawCHMLableFrame();
	if((iChOffInChManagement = getChannels(MAX_ITEMS_IN_CHANNELMANAGEMENT)) == INVALID_LINK)
	{
		iNoOfAvailableMenuElements = 0;
		sttbx_Print("The Database is empty!!!\n");
	}
	else
	{
		sttbx_Print("\niChOffInChManagement = %d\n",iChOffInChManagement);
	}
	p=pstAvailableMenuDataHead;
	iNoOfMenuElements = iNoOfAvailableMenuElements;
	for(i = 0; i<MAX_ITEMS_IN_CHANNELMANAGEMENT; i++)
	{
		ClearChManageItemArea(i);
	}
	for(i = 0;i<iNoOfAvailableMenuElements;i++)
	{
		drawChManageItem(i,p->aucData,(i == iChOffInChManagement)?1:0);
		p=p->Next;
	}
	/*********************************************************/

	drawHelpButton();
	
}


static void changeToTransManage(void)
{
	int 	i = 0;
	int 	iNoOfMenuElements = 0;
	MENU_DATA_STRUCT *p = NULL;


	drawCHMLableFrame();
	

	
	/******************Draw Content********************/
	/* not change iTransOffInChManagement  */
	if((iTransOffInChManagement=getTransponders(MAX_ITEMS_IN_CHANNELMANAGEMENT)) == INVALID_LINK)
	{
		sttbx_Print("The transponder database is empty!!!\n");
		
	}
	else
	{
		sttbx_Print("\niTransOffInChManagement = %d\t",iTransOffInChManagement);
		sttbx_Print("\niNoOfTransponderMenuElements = %d\n",iNoOfTransponderMenuElements);
	}
	
	p=pstTransponderMenuDataHead;
	iNoOfMenuElements = iNoOfTransponderMenuElements;
	for( i = 0; i<MAX_ITEMS_IN_CHANNELMANAGEMENT; i++)
	{
		ClearTransManageItemArea( i );
	}
	for(i = 0;i<iNoOfTransponderMenuElements;i++)
	{
		drawTransManageItem(i,p->aucData,(i == iTransOffInChManagement)?1:0);
		p=p->Next;
	}	
	drawHelpButton();
	
}

static void drawFavoriteFlagInChManage(int iOffset,BOOL highlight,BOOL bSetFavorite)
{
	STOSD_Color_t textcolor,backgroundcolor;
	backgroundcolor.Type = STOSD_COLOR_TYPE_PALETTE;
	backgroundcolor.Value.PaletteEntry =143;

	if(highlight)
		textcolor = blackcolor;
	else
		textcolor = whitecolor;

	/*The following is just for testing*/
	if(bSetFavorite)
	{
		//EMC_DrawTextFlatRectangle(Handle_ProviewWindow,CM_ITEM_FAVR_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_FAVR_Y+2,CM_ITEM_FAVR_WIDTH,CM_ITEM_HEIGHT-4, "#",textcolor,backgroundcolor,backgroundcolor );
		HL_STOSD_DrawBMP(Handle_ProviewWindow, CM_ITEM_FAVR_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_FAVR_Y+2,Bitmap_Struct_Ch_Favor);
	}
	else
	{
		STOSD_FillRectangle(Handle_ProviewWindow, CM_ITEM_FAVR_X, iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_FAVR_Y+2,CM_ITEM_FAVR_WIDTH,CM_ITEM_HEIGHT-4, backgroundcolor);
	}
}

static void drawLockedFlagInChManage(int iOffset,BOOL highlight,BOOL bSetLocked)
{
	STOSD_Color_t textcolor,backgroundcolor;
	backgroundcolor.Type = STOSD_COLOR_TYPE_PALETTE;
	backgroundcolor.Value.PaletteEntry =155;

	if(highlight)
		textcolor = blackcolor;
	else
		textcolor = whitecolor;
		
	/*The following is just for testing*/
	if(bSetLocked)
	{
		HL_STOSD_DrawBMP(Handle_ProviewWindow, CM_ITEM_LOCK_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_LOCK_Y+2,Bitmap_Struct_Ch_Lock);
		//EMC_DrawTextFlatRectangle(Handle_ProviewWindow,CM_ITEM_LOCK_X,iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_LOCK_Y+2,CM_ITEM_LOCK_WIDTH,CM_ITEM_HEIGHT-4, "#",textcolor,backgroundcolor,backgroundcolor );
	}
	else
	{
		STOSD_FillRectangle(Handle_ProviewWindow, CM_ITEM_LOCK_X, iOffset*(CM_ITEM_HEIGHT)+CM_ITEM_LOCK_Y+2,CM_ITEM_LOCK_WIDTH,CM_ITEM_HEIGHT-4, backgroundcolor);
	}
}

static void drawChManageItem(U8 iOffset,char *str,BOOL highlight)
{
	int i;
	STOSD_Color_t textcolor,backgroundcolor1,backgroundcolor2;
	//EMCFont_Type fontType = EMCFontTypeArray[LangSelect+4];/*test*/
	EMCFont_Type fontType = FONT_MYFONT;

	//int iProgNum = 0;
	char progNum[4];/*program number*/
	char progName[MAX_SERVICE_NAME_LENGTH+1];/*service name*/
	char providerName[MAX_SERVICE_PROVIDER_NAME_LENGTH+1];
	char networkName[MAX_NETWORK_NAME_LENGTH+1];/*service provider name*/
	
	backgroundcolor1.Type = STOSD_COLOR_TYPE_PALETTE;
	backgroundcolor1.Value.PaletteEntry =143;
	
	backgroundcolor2.Type = STOSD_COLOR_TYPE_PALETTE;
	backgroundcolor2.Value.PaletteEntry =155;
	
	for(i = 0;i<3;i++)
	{
		progNum[i] = str[i];
		//iProgNum = iProgNum*10+(str[i]-'0');
	}
	progNum[i] = '\0';
	for(i = 0;i<MAX_SERVICE_NAME_LENGTH;i++)
		progName[i] = str[17+i];
	progName[i] = '\0';
	
	for(i = 0;i<MAX_SERVICE_PROVIDER_NAME_LENGTH;i++)
		providerName[i] = str[32+i];
	providerName[i] = '\0';

	for(i=0;i<MAX_NETWORK_NAME_LENGTH;i++)
	{
		networkName[i] = str[54+i];
	}
	networkName[i] = '\0';

	/*draw the outer frame*/
	if(highlight)
	{
		textcolor = blackcolor;
		HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-3, (CM_ITEM_Y)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+3,CM_ITEM_HEIGHT, whitecolor);
		HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-2, (CM_ITEM_Y+1)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+1,CM_ITEM_HEIGHT-2, whitecolor);
	}
	else
	{
		textcolor = whitecolor;
		HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-3, (CM_ITEM_Y)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+3,CM_ITEM_HEIGHT, dialogcolor);
		HL_STOSD_DrawRectangle(Handle_ProviewWindow,CM_ITEM_X-2, (CM_ITEM_Y+1)+iOffset*(CM_ITEM_HEIGHT),CM_ITEM_WIDTH+1,CM_ITEM_HEIGHT-2, dialogcolor);
	}
	
	/*draw content*/
	EMC_DrawTextRectangle(Handle_ProviewWindow,
		CM_ITEM_NUM_X,CM_ITEM_NUM_Y+2+iOffset*CM_ITEM_HEIGHT,
		CM_ITEM_NUM_WIDTH,CM_ITEM_HEIGHT-4,
		progNum,JLEFT,fontType,FALSE,
		textcolor,backgroundcolor1,backgroundcolor1);
	
	EMC_DrawTextRectangle(Handle_ProviewWindow,
		CM_ITEM_PROGNAME_X,CM_ITEM_PROGNAME_Y+2+ iOffset*CM_ITEM_HEIGHT,
		CM_ITEM_PROGNAME_WIDTH,CM_ITEM_HEIGHT-4,
		progName,JLEFT,fontType,FALSE,
		textcolor,backgroundcolor2,backgroundcolor2);

	EMC_DrawTextRectangle(Handle_ProviewWindow,
		CM_ITEM_PROVIDER_X,CM_ITEM_PROGNAME_Y+2+ iOffset*CM_ITEM_HEIGHT,
		CM_ITEM_PROVIDER_WIDTH,CM_ITEM_HEIGHT-4,
		providerName,JLEFT,fontType,FALSE,
		textcolor,backgroundcolor1,backgroundcolor1);
	
	EMC_DrawTextRectangle(Handle_ProviewWindow,
		CM_ITEM_NETWORKNAME_X,CM_ITEM_NETWORKNAME_Y+2+ iOffset*(CM_ITEM_HEIGHT),
		CM_ITEM_NETWORKNAME_WIDTH,CM_ITEM_HEIGHT-4,
		networkName,JLEFT,fontType,FALSE,
		textcolor,backgroundcolor2,backgroundcolor2);
	
	if(str[INDEX_FAVORITE_FLAG] == '1')
		drawFavoriteFlagInChManage(iOffset,highlight,TRUE);
	else
		drawFavoriteFlagInChManage(iOffset,highlight,FALSE);
	if(str[INDEX_LOCKED_FLAG] == '1')
		drawLockedFlagInChManage(iOffset,highlight,TRUE);
	else

⌨️ 快捷键说明

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