📄 desktop.c
字号:
#ifndef DESKTOP_H
#define DESKTOP_H
#include "Gui.h"
#include "Point.h"
#include "Def.h"
#include "DeskTop.h"
#include "Word.h"
#include "GuiDeskTop.h"
#include "Lcd_Test.h"
#include "Touch.h"
#define MainWinID (0)
#define GameWinID (1)
#define CfgWinID (2)
#define VdcWinID (3)
#define MsgWinID (4)
#define TextWinID (5)
#define Game1WinID (6)
#define Game2WinID (7)
#define Game3WinID (8)
void WPaint(Handle);
void BPaint(Handle);
void BtnPaint(Handle);
void DeskTopInit(void);
void Reset(void)
{
XPosition+=1;
XPosition-=1;
YPosition+=1;
YPosition-=1;
}
//Rent* r;
//int WinNum;
Rent Rentangle(int x1,int y1,int x2,int y2)
{
Rent r;
r.p.x=x1;
r.p.y=y1;
r.x=x2;
r.y=y2;
return r;
}
void BtnPaint(Handle b)
{
Point p;
Button* button=(Button*)(b);
Button* btn=(Button*)((*button).obj.HBrother);
U8* ch=(U8*)(*button).HText;
p.x=(*button).obj.rent.p.x+(*button).obj.rent.x;
p.y=(*button).obj.rent.p.y+(*button).obj.rent.y;
Pen_Color=(*button).obj.BackColor;
Draw_Rent((*button).obj.rent.p,p);
// Focus_Point=button.obj.rent.p;
// Draw_Bitmap(ch);
if((*button).obj.HBrother!=NULL) BtnPaint((Handle)btn);
//if(button.obj.HChilde!=NULL) Paint(*(button.obj.HChilde));
}
void BPaint(Handle ba)
{
Point p;
Bar* bar=(Bar*)(ba);
Bar* b=(Bar*)((*bar).obj.HBrother);
int n=strlen((U8*)(*bar).HText);
Button* btn=(Button*)((*bar).obj.HChilde);
p.x=(*bar).obj.rent.p.x+(*bar).obj.rent.x;
p.y=(*bar).obj.rent.p.y+(*bar).obj.rent.y;
Pen_Color=(*bar).obj.BackColor;
Draw_Rent((*bar).obj.rent.p,p);
Focus_Point.x=((*bar).obj.rent.p.x+(*bar).obj.rent.x/2-4*n);
Focus_Point.y=((*bar).obj.rent.p.y+(*bar).obj.rent.y/2-8);
Pen_Color=(*bar).obj.FrontColor;
Draw_Bitmap((U8*)(*bar).HText);
if((*bar).obj.HBrother!=NULL) BPaint((Handle)b);
if((*bar).obj.HChilde!=NULL) BtnPaint((Handle)btn);
}
void WPaint(Handle wi)
{
Point p;
Win* win=(Win*)wi;
Win* w=(Win*)((*win).obj.HBrother);
Bar* b=(Bar*)((*win).obj.HChilde);
p.x=(*win).obj.rent.p.x+(*win).obj.rent.x;
p.y=(*win).obj.rent.p.y+(*win).obj.rent.y;
Pen_Color=(*win).obj.BackColor;
Draw_Rent((*win).obj.rent.p,p);
Focus_Point.x=Focus_Point.y=0;
Pen_Color=(*win).obj.FrontColor;
Draw_Bitmap((U8*)(*win).HText);
if((*win).obj.HBrother!=NULL) WPaint((Handle)w);
if((*win).obj.HChilde!=NULL) BPaint((Handle)b);
}
void InitWin(Win *w,CallBack cb,Handle hc,Handle hb,Rent r,Color bc,Color fc,Handle ht)
{
(*w).obj.CBTouch=cb;
(*w).obj.HChilde=hc;
(*w).obj.HBrother=hb;
(*w).obj.rent.p.x=(r).p.x;
(*w).obj.rent.p.y=(r).p.y;
(*w).obj.rent.x=(r).x;
(*w).obj.rent.y=(r).y;
(*w).obj.BackColor=bc;
(*w).obj.FrontColor=fc;
(*w).HText=ht;
}
void InitBar(Bar *b,CallBack cb,Win* win,Handle hc,Handle hb,Rent rent,Color bc,Color fc,Handle ht)
{
(*b).obj.CBTouch=cb;
(*b).obj.Parameter=(Handle)win;
(*b).obj.HChilde=hc;
(*b).obj.HBrother=hb;
(*b).obj.rent.p.x=(rent).p.x;
(*b).obj.rent.p.y=(rent).p.y;
(*b).obj.rent.x=(rent).x;
(*b).obj.rent.y=(rent).y;
(*b).obj.BackColor=bc;
(*b).obj.FrontColor=fc;
(*b).HText=ht;
}
void DeskTopInit(void)
{
int i=0;
// int j;
int WinNum=0;
Bar Game1Bar;
U8 Game1Barht[]="BACK";
Bar Game2Bar;
U8 Game2Barht[]="BACK";
Bar Game3Bar;
U8 Game3Barht[]="BACK";
Win MainWin;
U8 MainWinht[]="WELCOME TO MY SYSTEM WORLD";
Win GameWin;
U8 GameWinht[]="CHOOSE THE GAME YOU WANT TO PLAY";
Win MsgWin;
U8 MsgWinht[]="CHECK YOU MESSAGEBOX";
Win CfgWin;
U8 CfgWinht[]="CONFIGURE THE SYSTEM";
Win VdcWin;
U8 VdcWinht[]="START THE VIDEO CAMERO";
Win TextWin;
U8 TextWinht[]="TEXT WRITE";
Win Game1Win;
U8 Game1Winht[]="GAME1";
Win Game2Win;
U8 Game2Winht[]="GAME2";
Win Game3Win;
U8 Game3Winht[]="GAME3";
Bar GameBar[4];
U8 GameBar0ht[]="GAME1";
U8 GameBar1ht[]="GAME2";
U8 GameBar2ht[]="GAME3";
U8 GameBar3ht[]="BACK";
Bar MsgBar;
U8 MsgBarht[]="BACK";
Bar VdcBar;
U8 VdcBarht[]="BACK";
Bar TextBar;
U8 TextBarht[]="BACK";
Bar CfgBar;
U8 CfgBarht[]="BACK";
Bar MainBar[6];
U8 MainBar0ht[]="GAME";
U8 MainBar1ht[]="CONFIGURE";
U8 MainBar2ht[]="VIDICON";
U8 MainBar3ht[]="MESSAGE";
U8 MainBar4ht[]="TEXT WRITE";
U8 MainBar5ht[]="SYSTEM QUIT";
XPosition=YPosition=0;
InitBar(&Game1Bar,WPaint,&GameWin,NULL,NULL,Rentangle(Lcd_X-120,Lcd_Y-60,120,60),Color_Blue,Color_Red,(Handle)Game1Barht);
InitBar(&Game2Bar,WPaint,&GameWin,NULL,NULL,Rentangle(Lcd_X-120,Lcd_Y-60,120,60),Color_Blue,Color_Red,(Handle)Game2Barht);
InitBar(&Game3Bar,WPaint,&GameWin,NULL,NULL,Rentangle(Lcd_X-120,Lcd_Y-60,120,60),Color_Blue,Color_Red,(Handle)Game3Barht);
InitWin(&Game1Win,NULL,(Handle)&Game1Bar,NULL,Rentangle(0,0,Lcd_X,Lcd_Y),Color_White,Color_Red,(Handle)Game1Winht);
InitWin(&Game2Win,NULL,(Handle)&Game2Bar,NULL,Rentangle(0,0,Lcd_X,Lcd_Y),Color_White,Color_Red,(Handle)Game2Winht);
InitWin(&Game3Win,NULL,(Handle)&Game3Bar,NULL,Rentangle(0,0,Lcd_X,Lcd_Y),Color_White,Color_Red,(Handle)Game3Winht);
InitBar(&GameBar[0],WPaint,&Game1Win,NULL,(Handle)(&GameBar[1]), Rentangle(120,120,120,120), Color_Blue,Color_Red,(Handle)GameBar0ht);
InitBar(&GameBar[1],WPaint,&Game2Win,NULL,(Handle)(&GameBar[2]),Rentangle(560,120,120,120), Color_Blue,Color_Red,(Handle)GameBar1ht);
InitBar(&GameBar[2],WPaint,&Game3Win,NULL,(Handle)(&GameBar[3]),Rentangle(340,240,120,120), Color_Blue,Color_Red,(Handle)GameBar2ht);
InitBar(&GameBar[3],WPaint,&MainWin,NULL,NULL,Rentangle(Lcd_X-120,Lcd_Y-60,120,60), Color_Blue,Color_Red,(Handle)GameBar3ht);
InitWin(&GameWin,NULL,(Handle)(&GameBar[0]),NULL,Rentangle(0,0,Lcd_X,Lcd_Y),Color_White,Color_Red,(Handle)GameWinht);
InitBar(&CfgBar,WPaint,&MainWin,NULL,NULL, Rentangle(680,420,120,60), Color_Blue,Color_Red,(Handle)CfgBarht);
InitWin(&CfgWin,NULL,(Handle)(&CfgBar),NULL,Rentangle(0,0,Lcd_X,Lcd_Y), Color_White,Color_Red,(Handle)CfgWinht);
InitBar(&VdcBar,WPaint,&MainWin,NULL,NULL, Rentangle(680,420,120,60), Color_Blue,Color_Red,(Handle)VdcBarht);
InitWin(&VdcWin,NULL,(Handle)(&VdcBar),NULL,Rentangle(0,0,Lcd_X,Lcd_Y), Color_White,Color_Red,(Handle)VdcWinht);
InitBar(&TextBar,WPaint,&MainWin,NULL,NULL, Rentangle(680,420,120,60), Color_Blue,Color_Red,(Handle)TextBarht);
InitWin(&TextWin,NULL,(Handle)(&TextBar),NULL,Rentangle(0,0,Lcd_X,Lcd_Y), Color_White,Color_Red,(Handle)TextWinht);
InitBar(&MsgBar,WPaint,&MainWin,NULL,NULL, Rentangle(680,420,120,60), Color_Blue,Color_Red,(Handle)MsgBarht);
InitWin(&MsgWin,NULL,(Handle)(&MsgBar),NULL,Rentangle(0,0,Lcd_X,Lcd_Y), Color_White,Color_Red,(Handle)MsgWinht);
InitBar(&MainBar[0],WPaint,&GameWin,NULL,(Handle)(&MainBar[1]), Rentangle(100,120,120,120), Color_Blue,Color_Red,(Handle)MainBar0ht);
InitBar(&MainBar[1],WPaint,&CfgWin,NULL,(Handle)(&MainBar[2]), Rentangle(340,120,120,120), Color_Blue,Color_Red,(Handle)MainBar1ht);
InitBar(&MainBar[2],WPaint,&VdcWin,NULL,(Handle)(&MainBar[3]), Rentangle(580,120,120,120), Color_Blue,Color_Red,(Handle)MainBar2ht);
InitBar(&MainBar[3],WPaint,&MsgWin,NULL,(Handle)(&MainBar[4]), Rentangle(220,240,120,120), Color_Blue,Color_Red,(Handle)MainBar3ht);
InitBar(&MainBar[4],WPaint,&TextWin,NULL,(Handle)(&MainBar[5]), Rentangle(460,240,120,120), Color_Blue,Color_Red,(Handle)MainBar4ht);
InitBar(&MainBar[5],NULL,NULL,NULL,NULL, Rentangle(0,420,120,60), Color_Blue,Color_Red,(Handle)MainBar5ht);
InitWin(&MainWin,NULL,(Handle)(&MainBar[0]),NULL,Rentangle(0,0,Lcd_X,Lcd_Y), Color_White,Color_Red,(Handle)MainWinht);
WPaint((Handle)&MainWin);
//Pen_Color=Color_Red;
//Draw_Bitmap(MainWinht);
while(1)
{
switch(WinNum)
{
case MainWinID:
while(1)
{
if((XPosition>100)&&(XPosition<220)&&(YPosition>120)&&(YPosition<240))
{i=1;}
else if((int)((XPosition>340)&(XPosition<460))&&(YPosition>120)&&(YPosition<240)) {i=2;}
else if((int)((XPosition>580)&(XPosition<700))&&(YPosition>120)&&(YPosition<240)) {i=3;}
else if((int)((XPosition>220)&(XPosition<340))&&(YPosition>240)&&(YPosition<360)) {i=4;}
else if((int)((XPosition>460)&(XPosition<580))&&(YPosition>240)&&(YPosition<360)) {i=5;}
// else if(XPosition>100&&XPosition<220&&YPosition>120&&YPosition<240*/) i=6;
else {i=0;}
Reset();
//XPosition+=120;
if(i!=0)
{
MainBar[i-1].obj.CBTouch((MainBar[i-1].obj.Parameter));
WinNum=i;
break;
}
}
break;
case GameWinID:
while(1)
{
if((XPosition>120)&&(XPosition<240)&&(YPosition>120)&&(YPosition<240)) {i=1;}
else if((XPosition>560)&&(XPosition<680)&&(YPosition>120)&&(YPosition<240)) {i=2;}
else if((XPosition>340)&&(XPosition<460)&&(YPosition>240)&&(YPosition<360)) {i=3;}
else if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480)) {i=4;}
else {i=0;}
Reset();
if(i!=0)
{
GameBar[i-1].obj.CBTouch(GameBar[i-1].obj.Parameter);
if(i==1) WinNum=6;
else if(i==2) WinNum=7;
else if(i==3) WinNum=8;
else WinNum=0;
break;
}
}
break;
case CfgWinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
CfgBar.obj.CBTouch(CfgBar.obj.Parameter);
WinNum=MainWinID;
break;
}
Reset();
}
break;
case VdcWinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
VdcBar.obj.CBTouch(VdcBar.obj.Parameter);
WinNum=MainWinID;
break;
}
Reset();
}
break;
case MsgWinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
MsgBar.obj.CBTouch(MsgBar.obj.Parameter);
WinNum=MainWinID;
break;
}
Reset();
}
break;
case TextWinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
TextBar.obj.CBTouch(TextBar.obj.Parameter);
WinNum=MainWinID;
break;
}
Reset();
}
break;
case Game1WinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
Game1Bar.obj.CBTouch(Game1Bar.obj.Parameter);
WinNum=GameWinID;
break;
}
Reset();
}
break;
case Game2WinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
Game2Bar.obj.CBTouch(Game2Bar.obj.Parameter);
WinNum=GameWinID;
break;
}
Reset();
}
break;
case Game3WinID:
while(1)
{
if((XPosition>680)&&(XPosition<800)&&(YPosition>360)&&(YPosition<480))
{
Game3Bar.obj.CBTouch(Game3Bar.obj.Parameter);
WinNum=GameWinID;
break;
}
Reset();
}
break;
default:
break;
}
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -