📄 mradio.cpp
字号:
#include"\sunshine\include\mradio.h"
#include"\sunshine\include\app.h"
#include"\sunshine\include\define.h"
#include<alloc.h>
#include<string.h>
MRadio::MRadio(int x,int y,char *rtext,char *tname,char *groupname,int check)
: MObj(x,y,0,0,groupname)
{
firstrun=1;
CK=check;
name=new char[strlen(tname)+1];
text=new char[strlen(rtext)+1];
strcpy(name,tname);
strcpy(text,rtext);
M=MApp::Application;
w(Length(text)+20);
h(16);
}
MRadio::MRadio(int x,int y,char *rtext,char *tname,
char *groupname,MWindowObj &awin,int check)
: MObj(x,y,0,0,groupname)
{
firstrun=1;
CK=check;
name=new char[strlen(tname)+1];
text=new char[strlen(rtext)+1];
strcpy(name,tname);
strcpy(text,rtext);
M=&awin;
w(Length(text)+20);
h(16);
}
MRadio::~MRadio()
{
delete text;
delete name;
}
void MRadio::UnFocus()
{
Mouse am(1);
UnChecked();
Write(text,x()+20,y(),BLACK);
}
void MRadio::GetFocus()
{
Mouse am(1);
if(CK)
Checked();
else
UnChecked();
}
void MRadio::Checked()
{
int X=x(),Y=y();
setcolor(BLUE);
line(X+3,Y+3,X+13,Y+13);
line(X+3,Y+4,X+13,Y+13);
line(X+3,Y+13,X+13,Y+3);
}
void MRadio::UnChecked()
{
int X=x(),Y=y();
setfillstyle(SOLID_FILL,LIGHTGRAY);
bar(X,Y,X+15,Y+15);
setcolor(WHITE);
line(X,Y,X+15,Y);
line(X,Y,X,Y+15);
setcolor(DARKGRAY);
line(X+15,Y+1,X+15,Y+15);
line(X,Y+15,X+15,Y+15);
}
int MRadio::Process()
{
Mouse am;
if(firstrun)
{
UnFocus();
if(CK) Checked();
firstrun=0;return 1;
}
if(Mes==CLEARCHECK) {Mes=0;CK=0;GetFocus();return 1;}
if(!am.lp()) return 1;
if(am.x()<x()||am.y()<y()||am.x()>(x()+w()-1)||
am.y()>(y()+h())) return 1;
while(am.lp()) am.Reset();
if(CK) return 1; //has been checked
CK=1;
GetFocus();
ClearOther();
return F();
}
void MRadio::ClearOther()
{
int num=M->GetNumber();
for(int i=0;i<num;i++)
{
MObj &aobj=M->GetObj(i);
if(!strcmp(aobj.Nameof(),"mradio"))
if(!strcmp(((MRadio&)aobj).GetId(),GetId()))
if(strcmp(((MRadio&)aobj).GetName(),GetName())&&
((MRadio&)aobj).GetCheck())
{
aobj.TransMes(CLEARCHECK);
return ;
}
}
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -