📄 windows.c
字号:
#include "globals.h"
void draw_image(unsigned char X, unsigned char Y, unsigned char SIZEX, unsigned char SIZEY, const char *image)
{
int space=0x00;
unsigned char l=0, c=0, q=0, count=0;
space = (SIZEX*SIZEY)/8;
// GRAPHIC ICON 36x36 pixels !!!!
for(l = 0 ; l != space; ++l)
{
for(c = 0; c != 8 ; c ++)
{
//draw icone with Offset (+1)!
if(testbit(image[l],c)) LcdPixel(q+X,c+Y, PIXEL_ON);
else LcdPixel(q+X, c+Y, PIXEL_OFF);
}
count++;q++;
if(count== 36)
{
count=0;
Y += 8;
q=0;
}
}
return;
}
void draw_select_border(void)
{
/*draw selec border sub
border size 25[x]x24[y]
start position 2 pixels[x]
2 25 2
|_|_____| |________________
| | | |
| | | 24 |
| |_____| |
| |
| |
| |
|_____________________|
*/
//SUB
// 6 icons
switch(menu_counter)
{
//first line icons
case 0:
{
draw_image(2,0,36,32,&tools[0]);
break;
}
case 1:
{
draw_image(25,0,36,32,&clock[0]);
break;
}
case 2:
{
draw_image(46,0,36,32,&weather[0]);
break;
}
//second line icons
case 3:
{
draw_image(0,15,36,32,&batt[0]);
break;
}
case 4:
{
break;
}
case 5:
{
break;
}
}
return;
}
/*
Draw Full Size Picture
*/
void draw_picture(const char *pic)
{
int count;
for(count=0;count != 504;count++)
{
LcdCache[count]=pic[count];
}
LoWaterMark=0; HiWaterMark=504;
//DRAW BORDER
draw_select_border();
return;
}
//draw rectangular window
void Draw_Window(unsigned char sxa,unsigned char syb, unsigned char xa, unsigned char yb, const char *text, const char *text1)
{
/*
size
xa, yb
start
sxa, sxb
*/
//variables
unsigned char q,c,l,m,oldX, oldY, count, Xoffset, Yoffset;
//initialize
oldX=sxa;
oldY=syb;
Xoffset=15;
Yoffset=1;
// CREATE WINDOW
//clear window insight
for(l=oldX+1; l!= xa+oldX; l++)
{
for(m=oldY+1; m!= yb+oldY; m++) LcdPixel(l, m, PIXEL_OFF);
}
// DRAW BORDER
//x1
LcdLine(oldX, oldY, xa+oldX, oldY, PIXEL_ON);
//y1
LcdLine(xa+oldX, oldY, xa+oldX, yb+oldY, PIXEL_ON);
//y2
LcdLine(xa+oldX, yb+oldY, oldX, yb+oldY, PIXEL_ON);
//x2
LcdLine(oldX, yb+oldY, oldX, oldY, PIXEL_ON);
// GRAPHIC ICON 8x8 pixels !!!!
for(q = 0 ; q != 8; ++q)
{
for(c = 0; c != 8 ; c ++)
{
//draw icone with Offset (+1)!
if(testbit(info[q],c)) LcdPixel(q+sxa+1,c+syb+1, PIXEL_ON);
else LcdPixel(q+sxa+1, c+syb+1, PIXEL_OFF);
}
}
//// TITLE TEXT 5x8 font!!!!
count=strlen(text);
for(l=0;l!=count;l++)
{
for(q = 0 ; q != 5; ++q)
{
for(c = 0; c != 8 ; c ++)
{
//draw icone with Offset!
if(testbit(FontLookup[*text][q],c))
LcdPixel(q+sxa+Xoffset,c+syb+Yoffset, PIXEL_ON);
else
LcdPixel(q+sxa+Xoffset, c+syb+Yoffset, PIXEL_OFF);
}
}
//next char
*text++;
//Offset for next char
Xoffset+=5;
}
//Line #1
LcdLine(oldX,oldY+9,(xa)+oldX,oldY+9, PIXEL_ON);
//// TEXT INSIGHT WINDOW
//text coordinates insight window
Yoffset+=12; Xoffset=2;
count=strlen(text1);
for(l=0;l!=count;l++)
{
for(q = 0 ; q != 5; ++q)
{
for(c = 0; c != 8 ; c ++)
{
//draw icone with Offset!
if(testbit(FontLookup[*text1][q],c))
LcdPixel(q+sxa+Xoffset,c+syb+Yoffset, PIXEL_ON);
else
LcdPixel(q+sxa+Xoffset, c+syb+Yoffset, PIXEL_OFF);
}
}
//next char
*text1++;
//Offset for next char
Xoffset+=5;
}
return;
}
//eof
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -