📄 ldrawwin.cpp
字号:
#include <ldraw.h>
#include <string.h>
#define WTYPE_NORMAL 0
#define WTYPE_GRAPH 1
//////////////////// COLORS /////////////////////
static uchar lw_cn=24,lw_cl=30,lw_cd=19,lw_ct=27,lw_cbar=1,
lw_ctext=255,lw_cground=29,
lw_d1=3, lw_d2=3, lw_d3=23, lw_d4=3,
lw_wl=4, lw_barw=18;
short lw_b1x1, lw_b1y1, lw_b1x2, lw_b1y2, lw_b2x1, lw_b2y1, lw_b2x2, lw_b2y2;
//////////////////// PROC DRAW //////////////////
void lwSetColor(uchar cn,uchar cl,uchar cd,uchar ct,uchar cb,uchar ctext,uchar cg)
{ lw_cn=cn; lw_cl=cl; lw_cd=cd; lw_ct=ct; lw_cbar=cb; lw_ctext=ctext; lw_cground=cg; }
void lwDrawRectangle(int x1,int y1,int x2,int y2,int type);
void lwDrawButton(short x1,short y1,short x2,short y2,char *str,char *bitmap,char type);
void lwInitColor();
///////////////////////////////////////////////////
void lwInitColor()
{ RGB *pal; pal=new RGB[256]; lloadPal(pal);
lw_cn=lpBestfitColor(pal,32,32,32); lw_cl=lpBestfitColor(pal,50,50,50);
lw_cd=lpBestfitColor(pal,20,20,20); lw_ct=lpBestfitColor(pal,45,45,45);
lw_cbar=lpBestfitColor(pal,2,2,42); lw_ctext=lpBestfitColor(pal,0,0,0);
lw_cground=lpBestfitColor(pal,42,42,42);
delete pal;
}
void lwDraw(short x1,short y1,short x2,short y2,char *name,int type)
{ short sc=ld_workColor, bx1, by1, bx2, by2, sy=y1+lw_wl+lw_barw, inc=lw_wl+lw_barw;
lsetColor(lw_cn);
lbar(x1,y1,x2,y2);
lwDrawRectangle(x1,y1,x2,y2,0);
lwDrawRectangle(x1+lw_wl-1,y1+lw_wl-1,x2-lw_wl+1,y2-lw_wl+1,1);
lsetColor(lw_cbar);
bx1=x1+lw_wl+lw_barw, by1=y1+lw_wl, bx2=x2-lw_wl-lw_barw, by2=sy-1;
lbar(bx1,by1,bx2,by2);
lwDrawRectangle(bx1,by1,bx2,by2,0);
lsetColor(lw_cl); lline(x1,sy,x1+lw_wl-2,sy); lline(x2-lw_wl+1,sy,x2-1,sy);
lline(x1+inc,y1,x1+inc,y1+lw_wl-1); lline(x2-inc+1,y1,x2-inc+1,y1+lw_wl-1);
lsetColor(lw_cd); lline(x1,sy-1,x1+lw_wl-2,sy-1); lline(x2-lw_wl+1,sy-1,x2-1,sy-1);
lline(x1+inc-1,y1,x1+inc-1,y1+lw_wl-1); lline(x2-inc,y1,x2-inc,y1+lw_wl-1);
lsetColor(lw_ct);
louttextxy(x1+lw_wl+lw_barw+3,((by2+by1)>>1)+1,name);
lwDrawButton(bx2+1,by1,x2-lw_wl,by2,"x",NULL,0);
lw_b1x1=bx2+1, lw_b1y1=by1, lw_b1x2=x2-lw_wl, lw_b1y2=by2;
lwDrawButton(x1+lw_wl,y1+lw_wl,x1+inc-1,y1+inc-1,"+",NULL,0);
lw_b2x1=x1+lw_wl, lw_b2y1=y1+lw_wl, lw_b2x2=x1+inc-1, lw_b2y2=y1+inc-1;
switch (type)
{ case WTYPE_NORMAL: lwDrawRectangle(x1+lw_wl,sy,x2-lw_wl,y2-lw_wl,0);
break;
case WTYPE_GRAPH:
lsetColor(lw_cground);
lbar(x1+lw_wl,sy,x2-lw_wl,y2-lw_wl);
break;
}
ld_workColor=sc;
}
void lwDrawButton(short x1,short y1,short x2,short y2,char *str,char *bitmap,char type)
{ short blen=x2-x1+1, bwid=y2-y1+1, len, wid,
slen=strlen(str)*8, sx=(blen-slen)/2+x1, sy=(y2+y1)/2+1;
lsetColor(lw_cn); lbar(x1,y1,x2,y2);
lwDrawRectangle(x1,y1,x2,y2,type);
if (bitmap)
{ lgetSize(&len,&wid,bitmap);
if (len>0&&wid>0&&len<blen&&wid<bwid)
lputImage(x1+((blen-len)>>1),x1+((bwid-wid)>>1),bitmap);
}
if (type==1) { sx+=1; sy+=1; }
lsetColor(0);
louttextxy(sx,sy,str);
}
void lwDrawRectangle(int x1,int y1,int x2,int y2,int type)
{ short c1=lw_cl,c2=lw_cd,c;
if (type) { c=c1; c1=c2; c2=c; }
lsetColor(c1); lline(x1,y1,x2,y1); lline(x1,y1,x1,y2);
lsetColor(c2); lline(x2,y1,x2,y2); lline(x1,y2,x2,y2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -