📄 tools.h
字号:
menunode * nextmenu,* submenu,* priormenu,* parentmenu,* curmenuitem;
int numofmenu,command;
int width; //{width is num. of char}
};
typedef menunode * pmenunode;
struct menubar// {5}
{int row,col,forecolor,width; //{width is num. of char}
boolean visible;
pmenunode curp;
pointer bararr;
};
struct mymenu // {6}
{int numofmenus,numofselect;
menubar mbar;
menunametype menuname;
int heatkey,retcode;
int smw,smh;
keynametype keyname;
pmenunode firstmenu,cursubmenu;
viewporttype smvp[9];
};
class gmenubar // {7}
{
public:
int row,col,forecolor,w;
boolean visible;
pointer pmem;
gmenubar() { pmem=nil;}
~gmenubar(){if (pmem!=nil) free(pmem);}
};
mymenu onemenu;
menubar mbar;
void* pmem,* charblock,* blackbk;
pmenunode pmenu,item;
gmenubar gmnbar ;
cursor cur1;
int clipon=1;
int kk=0;
viewporttype tbvp={20, 20, 640, 350, clipon};
viewporttype mmvp={0, 0, 640, 20, clipon};
boolean Havefile(string,int);
boolean Is_file_path(string);
void Waitkey(string,int,int );
int Sgn(int x1,int x2);
void Aarrow(int x1,int y1,int x2,int y2);
void Arrowdot(int x1,int y1,int x2,int y2);
int Max(int a,int b);
int Min(int a,int b);
void Convs(int i,char []);
void Getkey(int& key,boolean& funckey);
void Menu(string ss);
void Statusline(string ss);
void Get_dos_file(string ss1,string ss);
boolean Answer_yes(string ss);
void Savequestion(string ss1,string ss,boolean& canorno);
void Loadquestion(string ss1,string ss,boolean& selected);
void Wait();
void Cond_wait(boolean b,int k);
void Waitanykey();
void Cond_waitanykey(boolean b,int k);
void Into_graph();
void End_graph();
void Error(string s);
void Error_exit(string s);
void Clear_range(int xl,int yl,int xr,int yr);
void Cursor_init( cursor& cur,int initx,int inity,int forecolor,int backcolor);
void Cursor_show(cursor& cur);
void Cursor_hide(cursor& cur);
void Cursor_setsd(cursor& cur,boolean ssdd);
void Cursor_done(cursor& cur);
boolean Cursor_isvisible(cursor& cur);
void Cursor_moveto(cursor& cur,int newx,int newy);
int Cursor_cursorx( cursor& cur);
int Cursor_cursory(cursor& cur);
void Cursor_relmove(cursor& cur,int dx,int dy);
boolean Isascii(char c);
void Displaychinesexy(int x,int y,word s);
void Disp_chmodel_fromgxy(chwordmode& cwm,int x1,int y1);
void Displayasciixy(int x,int y,byte s);
void Displaysinglexy(int& x,int& y,string s,int& i);
void Displaytextxy(int x,int y,string s);
void Spaces(string s,int n);
void Substr(string s1,string s2,int si,int n);
void Itrim(string s1,string s2);
void Rtrim(string s1,string s2);
void Upper(string ss);
void Lower(string ss);
void Disconnect(string ss,string path,string filename);
boolean Havefile(string filename,int attr);
void Displaychinesexy1(int x,int y,word s);
void Displayasciixy1(int x,int y,byte s);
void Displaysinglexy1(int& x,int& y,string s,int& i);
void Displaytextxy1(int x,int y,string s);
void Outtextxy(int x,int y,string s);
void Outtext(string s);
void Stringobj_init(stringobj& strobj, string news);
void Stringobj_done(stringobj& strobj);
void Stringobj_movetoword(stringobj& strobj,int& i,cursor& cur1);
void Stringobj_putstring(stringobj& strobj, string news);
void Stringobj_moveto(stringobj& strobj,int newx,int newy);
int Stringobj_firstx(stringobj& strobj);
int Stringobj_firsty(stringobj& strobj);
string Stringobj_curstring(stringobj& strobj);
void Stringobj_displaystringxy(stringobj& strobj,int x,int y);
void Stringobj_edit(stringobj& strobj,int newx,int newy,int lens,
int& lastk,boolean& funckey);
void Gmenubar_init(gmenubar& gmnbar,int foreclr, int width);
void Gmenubar_show(gwindow& gwnd,gmenubar& gmnbar);
void Gmenubar_hide(gwindow& gwnd, gmenubar& gmnbar);
void Gmenubar_moveto( gwindow& gwnd,gmenubar& gmnbar,int i,int j);
void Gwindow_init(gwindow& gwnd,int newx1,int newy1,int newx2,int newy2);
void Gwindow_done(gwindow& gwnd);
void Gwindow_newwindow(gwindow& gwnd);
void Gwindow_showstring(gwindow& gwnd,int relx,int rely,string s);
void Gwindow_editstring(gwindow& gwnd,int relx,int rely, string ss);
void Gwindow_inputstring(gwindow& gwnd,int relx,int rely, string ss);
void Inputstrinwnd(int x1,int y1,int x2,string s0,string ss);
void Editstrinwnd(int x1,int y1,int x2,string s0,string ss);
void Dispstrinwnd(int x1,int y1,string s0);
void Inputintinwnd(int x1,int y1,int x2, string s0, int& i);
void Editintinwnd(int x1,int y1,int x2,string s0,int& i);
void Inputrealinwnd(int x1,int y1,int x2,string s0,double& r);
void Editrealinwnd(int x1,int y1,int x2,string s0,double& r);
void Get_file_from_gwindow(string path,int attr,string fname,
int xl,int yl,int xr,int yr,boolean& selected);
void Gwindow_clear(gwindow& gwnd);
void Gwindow_clear_line(gwindow& gwnd,int relrow);
void Gwindow_clear_linemid(gwindow& gwnd, int relx,int rely,int len);
void Gwindow_clear_lineright(gwindow& gwnd,int relrow,int len);
void Gwindow_clear_LineLeft( gwindow& gwnd,int relrow,int len);
void Get_string(string s0,string ss);
void Gmenubar_init(gmenubar& gmnbar,int foreclr,int width);
void Gmenubar_show(gwindow& gwnd, gmenubar& gmnbar);
void Gmenubar_hide(gwindow& gwnd, gmenubar& gmnbar);
void Gmenubar_moveto(gwindow& gwnd, gmenubar& gmnbar,int i,int j);
int Mymenu_numofsubmenu(mymenu& onemenu);
pmenunode Mymenu_firstsubmenu( mymenu& onemenu);
pmenunode Mymenu_getsubmenu(mymenu& onemenu,int i);
pmenunode Mymenu_getsubmenufrom(mymenu& onemenu,int i,pmenunode curp);
int Mymenu_numofmenuitem(mymenu& onemenu,int i) ;
pmenunode Mymenu_firstmenuitem(mymenu& onemenu,int numofsub);
void Mymenu_setsmvport( mymenu& onemenu);
void Blackedge(viewporttype vp);
void Selectvport(viewporttype vp);
void Dispmenuitemxy(int x1,int y1,pmenunode p);
void Mymenu_dispmainmenu(mymenu& onemenu);
void Mymenu_clearmainmenu(mymenu& onemenu);
void Mymenu_dispsubmenu(mymenu& onemenu,int numofsub);
void Mymenu_disp_cursubmenu(mymenu& onemenu);
void Mymenu_disabledispsubmenu(mymenu& onemenu,int numofsub);
void Mymenu_clear_cursubmenu(mymenu& onemenu);
boolean Mymenu_issubmenuitem(mymenu& onemenu);
boolean Mymenu_ismainmenuitem(mymenu& onemenu);
void Mymenu_init(mymenu& onemenu,pmenunode Frstm);
void Chck(pmenunode p);
void Mymenu_check(mymenu& onemenu) ;
void Mymenu_reset_cursubmenu(mymenu& onemenu);
void Chck1(pmenunode p);
void Mymenu_init2(mymenu& onemenu);
void Dispm( pmenunode p);
void Mymenu_done(mymenu& onemenu);
void Levelmove( pmenunode& p,int dx);
void Menubar_movenext( mymenu& onemenu,int dx,int dy);
void Mymenu_selectsubmenu(mymenu& onemenu,int& lastk,
boolean& selectorno,boolean& aborted);
void Mymenu_selectmenuitem(mymenu& onemenu,int& lastk,
boolean& selectorno,boolean& aborted);
void Mymenu_selectmenu( mymenu& onemenu,pmenunode& item, boolean& selectorno);
pmenunode copymenu1(pmenunode panmenu);
pmenunode Copysubmenu1(pmenunode oldp) ;
pmenunode Copyitems(pmenunode oldp);
pmenunode Linkmenup(pmenunode pmenu1,pmenunode pmenu2);
pmenunode Copyandappmenup(pmenunode pmenu1,pmenunode pmenu2);
void Copyandappmenu( mymenu menu1,mymenu menu2,mymenu& appmenu);
void Inputstr(string ss,int x,int y,int w,int& lastk,boolean funckey);
void Inputreal(float& num,int x,int y,int w,int& lastk,boolean& funckey);
void Inputint(int& num,int x,int y,int w,int& lastk,boolean& funckey);
int Trunc(float m)
{int i=m;
return i;
}
int Round(float m)
{int i=m;
int k=i+1;
float j=i+0.5;
if(m>=j)
return k;
else
return i;
}
void Convs(int i,char s[])
{ char st[10];
itoa(i,st,10);
strcpy(s,st);
}
int Min(int a,int b)
{return ((a<b)? a:b);
}
int Max(int a,int b)
{ return ((a<b)? b:a);
}
int Sgn(int x1,int x2)
{int x;
int sgn;
x=x2-x1;
if(x<0)
sgn =-1;
else if(x>0)
sgn=1 ;
else
sgn=0;
return sgn;
}
void Getkey( int& key,boolean& funckey)
{int kk;
string ss,ss1;
funckey=false;
kk=getch();
if (kk==0)
{ funckey=true;
kk=getch();
}
key=kk;
}
void Arrow(int x1,int y1,int x2,int y2)
{int sa1,sa2,sa,sgx,sgy;
arccoordstype a;
sgx=Sgn(x1,x2);
sgy=Sgn(y1,y2);
line(x1,y1,x2,y2);
if(x2==x1)
sa=180-sgy*90;
else
sa=270-sgx*90-sgx*sgy*Round(atan(abs((y2-y1)/(x2-x1)))*180/PI);
sa1=(sa-15)%360; sa2=(sa+15)%360;
arc(x2,y2,sa1,sa2,7); getarccoords(&a);
line(a.xstart,a.ystart,x2,y2);
line(a.xend,a.yend,x2,y2);
}
void Arrowdot(int x1,int y1,int x2,int y2)
{ circle(x1,y1,1);
Arrow(x1,y1,x2,y2);
}
void Get_chmodel(word s,chwordmode cwm)
{unsigned int dd,ff;
unsigned long int rec=0;
FILE *f;
if( (f=fopen("hzk16","rb") )==NULL)
{cout<<"can't open"<<endl;
exit(0);
}
dd=s/256;
ff=s%256;
rec=( (dd-0xa1)*94+(ff-0xa1) );
rec=rec*32;
fseek(f,rec,0);
fread(cwm,32,1,f);
fclose(f);
}
boolean Isascii( unsigned char c)
{ boolean isasc=(boolean)isascii(int(c));
return isasc; }
void Textxy_gxy(int x,int y,int& x1,int& y1)
{ x1=(x-1)*8;
y1=(y-1)*20+3;
if(charblock==nil)
{
int size=imagesize(1,30,8,39);
charblock=malloc(size);
//setfillpattern(fillmode,RED);
bar(1,30,8,39);
getimage(1,30,8,39,charblock);
putimage(1,30,charblock,1);
}
}
void Clear_byte_disp(int x,int y)
{int x1,y1;
Textxy_gxy(x,y, x1,y1);
putimage(x1,y1,charblock,0);
putimage(x1,y1,charblock,1);
}
void Get_chmodel_fromxhzk(word s, chwordmode cwm)
{int low,mid,hh,s1;
pointer p;
boolean suc;
low=0;
hh=xhzk.sortednum-1;
suc=false;
while ( (low<=hh) &&(!suc) )
{ mid=(low+hh)/2;
s1=s-xhzkarr[mid].code;
if (s1==0)
suc=true;
else if (s1<0)
hh=mid-1;
else
low=mid+1;
}
if (suc)
{ for(int i=0;i<16;i++)
cwm[i]=xhzkarr[mid].cwm[i];
}
else
Get_chmodel(s, cwm);
}
word swap(word w)
{word x,y;
word m=255;
x=w&m;
x=x<<8;
y=w>>8;
word w1=x+y;
return w1;
}
void Disp_chmodel_fromgxy(chwordmode cwm,int x1,int y1)
{int i,j;
word w;
for (i=0;i<16;i++)
{
w=cwm[i];
w=swap(w);
for (j=0;j<=15;j++)
{ if ( (w & 0x8000)!=0 )
putpixel(x1+j,y1+i,getcolor() );
w=w<<1;
}
}
}
void Disp_chinese_at(word s,int x,int y)
{int x1,y1;
chwordmode cwm;
Get_chmodel_fromxhzk(s,cwm);
Textxy_gxy(x,y, x1,y1);
//y1=y1+3;
Disp_chmodel_fromgxy(cwm,x1,y1);
}
void Displaychinesexy(int x,int y, word s)
{ Clear_byte_disp(x,y);
Clear_byte_disp(x+1,y);
Disp_chinese_at(s,x,y);
}
void Displayasciixy(int x,int y,byte s)
{int x1,y1;
Textxy_gxy(x,y, x1,y1);
Clear_byte_disp(x,y);
unsigned char s1=s;
unsigned char s2[1];
s2[0]=s1;
s2[1]='\0';
outtextxy(x1,y1+7,s2);
}
void Displaysinglexy(int& x,int& y,string s,int& i)
{
if (!Isascii(s[i]))
{ word j=s[i]*256+s[i+1];
//cout<<j<<endl;
Displaychinesexy(x,y,j);
i=i+2;
x=x+2;
}
else
{ Displayasciixy(x,y,s[i]);
i=i+1;
x=x+1;
}
}
void Displaytextxy(int x,int y,string s)
{ int x1,y1,i;
i=0; x1=x; y1=y;
int j=strlen(s);
while (i<j )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -