📄 mainwindow.c
字号:
/*
*********************************************************************************************************
* Samsung ARM S3C2410 Software Frame
*
* (c) Copyright 2008-2010, LastRitter
* All Rights Reserved
*
* File :
* By : LastRitter
*********************************************************************************************************
*/
#include "SystemTool.h"
#define SW_ICON_MOVE_WIDTH (64)
#define SW_ICON_MOVE_HIGH (16)
#define SW_ICON_MOVE_OFFSET (SW_ICON_MOVE_WIDTH/2+4)
#define SW_ICON_MOVE_XMIN ((SW_DESK_XMAX-SW_ICON_MOVE_WIDTH)/2)
#define SW_ICON_MOVE_YMIN (SW_DESK_YMAX-SW_ICON_MOVE_HIGH-4)
#define SW_ICON_MOVE_XMAX ((SW_DESK_XMAX+SW_ICON_MOVE_WIDTH)/2)
#define SW_ICON_MOVE_YMAX (SW_DESK_YMAX-4)
#define SW_ICON_MOVE_LEFT (SW_ICON_MAX)
#define SW_ICON_MOVE_RIGHT (SW_ICON_MAX+1)
#define SW_ICON_NO_CLICK (SW_ICON_MAX+2)
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
deskicon sta_Icon[SW_ICON_MAX];
uint16 ui_MainWindow=SW_DEF_HANDLE;
//******************************************************************************************************
void SW_ShowIcon(uint8 *pucBitMap,char *pscTitle,uint16 uiPosition);
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static void SW_ShowMoveButton(void)
{
EG_EllipseFill( SW_ICON_MOVE_XMIN-SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMIN,
SW_ICON_MOVE_XMAX-SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMAX,EG_RED|EG_BLUE);
EG_Ellipse( SW_ICON_MOVE_XMIN-SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMIN,
SW_ICON_MOVE_XMAX-SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMAX,EG_BLACK);
EG_EllipseFill( SW_ICON_MOVE_XMIN+SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMIN,
SW_ICON_MOVE_XMAX+SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMAX,EG_RED|EG_BLUE);
EG_Ellipse( SW_ICON_MOVE_XMIN+SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMIN,
SW_ICON_MOVE_XMAX+SW_ICON_MOVE_OFFSET,SW_ICON_MOVE_YMAX,EG_BLACK);
EG_SetFontColour(EG_BLUE|EG_GREEN);
EG_TextOutEx(SW_ICON_MOVE_XMIN-SW_ICON_MOVE_OFFSET+2,(SW_ICON_MOVE_YMAX-SW_ICON_MOVE_HIGH+2),
" Up Down");
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
extern unsigned char uca_MyAppPic[];
static void SW_ShowMain(uint16 uiHandle)
{
paintarea stArea;
uint16 uiRow,uiColumn,uiX0,uiY0;
uint16 uiIcon;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(SW_GetEffectArea(uiHandle,&stArea))
{
UART_TextOut("Get effect area error.(SW_ShowIcon)\n");
return;
}
uiX0=stArea.uiX0;
uiY0=(stArea.uiY1-SW_ICON_HIGH*SW_ICON_ROW_MAX)/2;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EG_PaintBmp(50,40,205,160,uca_MyAppPic);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
for(uiRow=0;uiRow<SW_ICON_ROW_MAX;uiRow++)
for(uiColumn=0;uiColumn<SW_ICON_COLUMN_MAX;uiColumn++)
{
uiIcon=uiRow*SW_ICON_COLUMN_MAX+uiColumn;
if(sta_Icon[uiIcon].pscTitle!=NULL)
{
SW_ShowIcon(sta_Icon[uiIcon].pucBitMap,sta_Icon[uiIcon].pscTitle,uiIcon);
}
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SW_ShowMoveButton();
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static uint16 SW_GetIconClick(uint16 uiHandle,uint16 uiX,uint16 uiY)
{
uint16 uiRow,uiColumn,uiIcon;
uint16 uiX0,uiY0;
paintarea stArea;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(SW_GetEffectArea(uiHandle,&stArea))
{
UART_TextOut("Get effect area error.(SW_RunIcon)\n");
return SW_ICON_MAX;
}
//******************************************************************************************************
uiX0=stArea.uiX0;
uiY0=(stArea.uiY1-SW_ICON_HIGH*SW_ICON_ROW_MAX)/2;
for(uiRow=0;uiRow<SW_ICON_ROW_MAX;uiRow++)
{
for(uiColumn=0;uiColumn<SW_ICON_COLUMN_MAX;uiColumn++)
{
if( uiX>(uiX0+SW_ICOM_BMP_XMIN+uiColumn*SW_ICON_WIDTH)&&
uiY>(uiY0+SW_ICON_BMP_YMIN+uiRow*SW_ICON_HIGH)&&
uiX<(uiX0+SW_ICON_BMP_XMAX+uiColumn*SW_ICON_WIDTH)&&
uiY<(uiY0+SW_ICON_BMP_YMAX+uiRow*SW_ICON_HIGH))
{
uiIcon=uiRow*SW_ICON_COLUMN_MAX+uiColumn;
if(sta_Icon[uiIcon].pscTitle!=NULL&&
sta_Icon[uiIcon].uiState!=SW_ICON_STATE_RUN)
{
return uiIcon;
}
return SW_ICON_NO_CLICK;
}
}
}
if( uiX>(SW_ICON_MOVE_XMIN-SW_ICON_MOVE_OFFSET)&&uiY>(SW_ICON_MOVE_YMIN)&&
uiX<(SW_ICON_MOVE_XMAX-SW_ICON_MOVE_OFFSET)&&uiY<(SW_ICON_MOVE_YMAX))
return SW_ICON_MOVE_LEFT;
if( uiX>(SW_ICON_MOVE_XMIN+SW_ICON_MOVE_OFFSET)&&uiY>(SW_ICON_MOVE_YMIN)&&
uiX<(SW_ICON_MOVE_XMAX+SW_ICON_MOVE_OFFSET)&&uiY<(SW_ICON_MOVE_YMAX))
return SW_ICON_MOVE_RIGHT;
//******************************************************************************************************
return SW_ICON_NO_CLICK;
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static void SW_RunIcon(uint16 uiHandle,uint16 uiX,uint16 uiY)
{
uint16 uiIcon=SW_GetIconClick(uiHandle,uiX,uiY);
if(uiIcon<SW_ICON_MAX)
{
sta_Icon[uiIcon].uiState=SW_ICON_STATE_RUN;
SW_OpenApp(uiIcon);
}
else
{
if(uiIcon==SW_ICON_MOVE_LEFT)
UART_TextOut("Icon move to left.\n");
if(uiIcon==SW_ICON_MOVE_RIGHT)
UART_TextOut("Icon move to right.\n");
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
static void SW_MainWindowCB(uint16 uiHandle,uint16 uiX,uint16 uiY,uint16 uiState)
{
switch(uiState)
{
case SW_WINDOW_PAINT:SW_ShowMain(uiHandle);break;
case SW_TS_DOWN :SW_RunIcon(uiHandle,uiX,uiY);break;
case SW_TS_HOLD :break;
default:break;
}
}
/*
*********************************************************************************************************
*
*
* Description:
*
* Arguments :
*
* Returns :
*
* Note(s) :
*
*********************************************************************************************************
*/
uint16 SW_MainWindow(void)
{
uint16 uiCount;
window stWindow;
for(uiCount=0;uiCount<SW_ICON_MAX;uiCount++)
{
sta_Icon[uiCount].pucBitMap=NULL;
sta_Icon[uiCount].pscTitle=NULL;
sta_Icon[uiCount].uiState=SW_ICON_STATE_STOP;
}
//******************************************************************************************************
SW_StructInit(&stWindow);
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
stWindow.uiX=0;
stWindow.uiY=0;
stWindow.uiWidth=SW_XMAX;
stWindow.uiHigh=SW_YMAX;
stWindow.scTitle="Main Window";
stWindow.uiStyple=SW_STYPLE_MAIN;
stWindow.stFront=EG_BLACK;
stWindow.stBack=EG_GREEN;
stWindow.CallBack=SW_MainWindowCB;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ui_MainWindow=SW_CreateWindow(&stWindow);
if(ui_MainWindow==0)
{
UART_TextOut("Can not create Main Window.(SW_MainWindow)\n");
return 1;
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if(SW_ShowWindow(ui_MainWindow))
{
UART_TextOut("Can not show Main Window.(SW_MainWindow)\n");
return 1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -