📄 sdrv_functions_thai.c
字号:
/*
********************************************************************************
* ACTOS
* ui dirver show picture
*
* (c) Copyright 2002-2003, Actions Co,Ld.
* All Right Reserved
*
* File : Sdrv_functions.c
* By : Rcmai
* Version: 1> v1.00 first version 10/17/2003 10:46PM
********************************************************************************
*/
#include "display.h"
#include "Drv_S6B33B0A.h"
#pragma codeseg(UI_RCODE)
////*******************************************************************************/
///*
//** FUNCTION: CheckCharMode
//**
//** Description: 检测字符的模式
//**
//** input
//** code: 字的内码
//**
//** output
//** == CharMode1616: 汉字
//** == CharMode0816: 大ASCII
//** == CharMode0608: 小ASCII
//********************************************************************************/
non_banked char CheckCharMode(int code)
{
//*如下动作主要是取 int code 的高8位来作比较(int 型参数是以 de 传送的,*
//* 也就是要用d的值来作比较),用如下指令可使编译器优化成不用移位而 *
//* 直接使用d的值来作比较。可省去不少时间及代码空间。 *
//if ((unsigned char)((unsigned int)code>>8) >= FirstSectionCode)
if ((unsigned char)code >= 0xa0)
{
return CharMode0816;//汉字
}
else if (AsciiSelect == FONT_TYPE_SMALL)
{
return CharMode0608;//小字体ASCII
}
return CharMode0816;//大字体ASCII
}
//================================================================================
////*******************************************************************************/
///*
//** FUNCTION: non_banked bool CheckDisplaySpace
//**
//** Description: 检测屏幕空间是否满足显示要求,如超出范围则报错
//**
//** input
//** codemod: 点阵的模式
//**
//** output
//** True: 屏幕空间能满足显示要求
//** False: 屏幕空间不能满足显示要求
//********************************************************************************/
non_banked bool CheckDisplaySpace(char codemod)
{
switch(codemod)
{
case CharMode0608://06*08点阵模式(ascii小字体)
// region.x [0 ~ Displaylength-1]
// region.y [0 ~ Displayhight-1]
if (region.x+ASCII_SMALL_WIDTH_DEF > region_win.x+region_win.width)
{
DUMP(RESULT_PUTCHAR_X_ERR);
PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
return FALSE;
}
if (region.y+ASCII_SMALL_HEIGHT_DEF > region_win.y+region_win.height)
{
DUMP(RESULT_PUTCHAR_Y_ERR);
PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
return FALSE;
}
break;
case CharMode0816://08*16点阵模式(ascii大字体)
if (region.x+ASCII_LARGE_WIDTH_DEF > region_win.x+region_win.width)
{
DUMP(RESULT_PUTCHAR_X_ERR);
PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
return FALSE;
}
if (region.y+ASCII_LARGE_HEIGHT_DEF > region_win.y+region_win.height)
{
DUMP(RESULT_PUTCHAR_Y_ERR);
PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
return FALSE;
}
break;
case CharMode1616://16*16点阵模式(汉字)
if (region.x+CHINESE_WIDTH_DEF > region_win.x+region_win.width)
{
DUMP(RESULT_PUTCHAR_X_ERR);
PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
return FALSE;
}
if (region.y+CHINESE_HEIGHT_DEF > region_win.y+region_win.height)
{
DUMP(RESULT_PUTCHAR_Y_ERR);
PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
return FALSE;
}
break;
case PicDisMode://图形显示模式
if (region.x+region.width > region_win.x+region_win.width)
{
DUMP(RESULT_PUTCHAR_X_ERR);
PutCharErrFlag = RESULT_PUTCHAR_X_ERR;//X轴超出
return FALSE;
}
if (region.y+region.height > region_win.y+region_win.height)
{
DUMP(RESULT_PUTCHAR_Y_ERR);
PutCharErrFlag = RESULT_PUTCHAR_Y_ERR;//Y轴超出
return FALSE;
}
break;
default:
DUMP(RESULT_PUTCHAR_OTHER_ERR);
PutCharErrFlag = RESULT_PUTCHAR_OTHER_ERR;//不知类型的也不显示
return FALSE;
}
return TRUE;
}
//================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -