📄 touchadjust.c
字号:
/*
*********************************************************************************************************
* Samsung ARM S3C2410 Software Frame
*
* (c) Copyright 2008-2010, LastRitter
* All Rights Reserved
*
* File :
* By : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"
#define SW_ADJUST_NUM 4
#define SW_ADJUST_FRONT (EG_GREEN|EG_RED)
#define SW_ADJUST_BACK (EG_GREEN|EG_BLUE)
#define SW_ADJUST_POINT (EG_RED)
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define SW_ADJUST_DISABLE 100
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uint8 uc_Adjust=SW_ADJUST_DISABLE;
static uint16 ui_AdjustBuf[SW_ADJUST_NUM][2];
static uint16 ui_Kx,ui_Ky;
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static uint16 SW_AdjustCal(colour stFront,colour stBack)
{
ui_Kx=ui_AdjustBuf[0][0]+ui_AdjustBuf[3][0]-ui_AdjustBuf[1][0]-ui_AdjustBuf[2][0];
ui_Ky=ui_AdjustBuf[0][1]+ui_AdjustBuf[3][1]-ui_AdjustBuf[1][1]-ui_AdjustBuf[2][1];
ui_Kx/=52;
ui_Ky/=36;
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_ConvertCoord(uint16 *puiX,uint16 *puiY)
{
*puiX=30+((882-*puiX)*10)/29;
*puiY=30+((840-*puiY)*10)/37;
if(*puiX>=SW_XMAX)
*puiX=SW_XMAX-1;
if(*puiY>=SW_YMAX)
*puiX=SW_YMAX-1;
return 0;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static void SI_AdjustDraw(uint8 ucPos,colour stFront,colour stBack)
{
switch(ucPos)
{
case 0:
EG_SetFontColour(stFront);
EG_TextOutEx(90,100,"Touch Screen Adjust");
EG_CrossPoint(30,30,8,3,SW_ADJUST_POINT);
break;
case 1:
EG_CrossPoint(30,30,8,3,stBack);
EG_CrossPoint(290,30,8,3,SW_ADJUST_POINT);
break;
case 2:
EG_CrossPoint(290,30,8,3,stBack);
EG_CrossPoint(290,210,8,3,SW_ADJUST_POINT);
break;
case 3:
EG_CrossPoint(290,210,8,3,stBack);
EG_CrossPoint(30,210,8,3,SW_ADJUST_POINT);
break;
case 4:
EG_CrossPoint(30,210,8,3,stBack);
EG_SetFontColour(stBack);
EG_TextOutEx(90,100,"Touch Screen Adjust");
EG_SetFontColour(stFront);
EG_TextOutEx(40,100,"Touch Screen Adjust Finished");
break;
default:break;
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static void SW_AdjustCB(uint16 uiHandle,uint16 uiX,uint16 uiY,uint16 uiState)
{
if(uiState!=SI_TS_DOWN)
return;
if(uc_Adjust<SW_ADJUST_NUM)
{
UART_TextOut("%d (x,y)=(%d,%d)\n",uc_Adjust,uiX,uiY);
ui_AdjustBuf[uc_Adjust][0]=uiX;
ui_AdjustBuf[uc_Adjust][1]=uiY;
SI_AdjustDraw(++uc_Adjust,SW_ADJUST_FRONT,SW_ADJUST_BACK);
if(uc_Adjust==SW_ADJUST_NUM)
{
if(SW_AdjustCal(SW_ADJUST_FRONT,SW_ADJUST_BACK))
{
uc_Adjust=0;
SI_AdjustDraw(0,SW_ADJUST_FRONT,SW_ADJUST_BACK);
}
}
}
else
{
uc_Adjust=SW_ADJUST_DISABLE;
SW_DeleteWindow(uiHandle);
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
void SW_AdjustWindow(void)
{
uint16 uiHandle;
window stWindow;
SW_StructInit(&stWindow);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
stWindow.uiX=0;
stWindow.uiY=0;
stWindow.uiWidth=SW_XMAX;
stWindow.uiHigh=SW_YMAX;
stWindow.scTitle="Touch Adjust";
stWindow.uiStyple=SW_STYPLE_ADJUST;
stWindow.stFront=SW_ADJUST_FRONT;
stWindow.stBack=SW_ADJUST_BACK;
stWindow.CallBack=SW_AdjustCB;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
uiHandle=SW_CreateWindow(&stWindow);
UART_TextOut("Test2\n");
SW_ShowWindow(uiHandle);
uc_Adjust=0;
SI_AdjustDraw(0,SW_ADJUST_FRONT,SW_ADJUST_BACK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -