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

📄 desktop.c

📁 嵌入式方面的一些简单程序
💻 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 + -