home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2002 December
/
PCWorld_2002-12_cd.bin
/
Software
/
Komercni
/
Baltik
/
katA.exe
/
katA
/
GUI
/
GUI_DEMO.SGP
< prev
next >
Wrap
Text File
|
2002-09-17
|
64KB
|
1,799 lines
SGPC 5.03 CZ0#352N00227 22.06.2024 23:17:03 StructNo16 16
# include <sgpbalt.h>
//////////////////////
// Globální prom╪nné
//
// prom╪nné celoƒíselné:
int gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ, // rozsah -32768..32767
gI¼íslo1,gI¼íslo2,gI¼íslo3,gPàvBarvy;
// gKlávesa je souƒástí knihovny Baltazara
// prom╪nné reálné:
double gD¼íslo1,gD¼íslo2,gD¼íslo3; // rozsah 5.0E-324..1.7E308
// prom╪nná znak:
char gZnak;
// prom╪nná ²et╪zec:
string gⁿet╪zec;
struct GUIObjekt {
int
µí²ka,V∞τka,
X,Y,
Okno, /* Okno, ke kterému objekt náleºí. */
ID; /* Pracovní identifikaƒní ƒíslo. */
char
Spec, /* Specifická prom╪nná (nap². stav u vypínaƒe). */
Druh, /* Druh objektu (nap². 0=Okno,1=Tlaƒítko ...). */
Styl, /* Styl objektu (nap². v p²ípad╪ tlaƒítka 0=obyƒejné,1=ploché ...). */
Viditeln∞, /* Viditelnost objektu (1=viditeln∞,0=neviditeln∞) */
Skupina, /* V p²ípad╪ p²epínaƒe urƒuje skupinu. */
P²i²azenaUdálost; /* No Comment ;) */
string
Text; /* Text, kter∞ je na objektu napsán. */
void
(*Klik)(), /* Událost klik na objekt */
(*Zm╪na)(), /* Událost zm╪na hodnoty (nap². zm╪na textového pole, zm╪na stavu vypínaƒe ... */
(*PopUp)(); /* Událost vybrání poloºky PupUp menu */
} Objekty[105]; /* Hlavní pole, které zdruºuje vτechny objekty.(index=ID) */
typedef struct Seznam {
string
Text[20]; /* Text poloºky. */
int
Poƒet, /* Poƒet poloºek. */
V∞b╪r; /* ¼íslo vybrané poloºky. */
µí²ka; /* µí²ka seznamu v bodech. */
} TSeznam;
# define StartTlaƒítko 5 /* Poƒáteƒní ID Tlaƒítka */
# define StartText 15 /* Poƒáteƒní ID Textu */
# define StartTextovéPole 40 /* Poƒáteƒní ID Textového pole */
# define StartVypínaƒ 60 /* Poƒáteƒní ID Vypínaƒe */
# define StartP²epínaƒ 70 /* Poƒáteƒní ID P²epínƒe */
# define StartV∞b╪r 85 /* Poƒáteƒní ID V∞b╪ru */
# define StartMenu 95 /* Poƒáteƒní ID V∞b╪ru */
int IDTlaĒtko=StartTlaĒtko,
IDText=StartText,
IDTextovéPole=StartTextovéPole,
IDOkno=0,
IDVypínaƒ=StartVypínaƒ,
IDP²epínaƒ=StartP²epínaƒ;
IDV∞b╪r=StartV∞b╪r,
IDMenu=StartMenu,
IDSeznamy=StartV∞b╪r,
Obnovit=0;
TSeznam Seznamy[105],MenuVybSeznamy[105];
int Konec=0;
int Okno1,Tl1,TextPole1,Text1,Vyp1,Pre1,Pre2,Vyb1,Menu1;
/////////////////////
// Pomocné definice
//
#define NE 0
#define ANO 1
#define ABS(x) ((x)>0?(x):-(x))
#define __CYKLUS(N) __Cyklus(1,N);__Cyklus(0,N); //Hlava cyklu
#define __MPVC_ 100 //Maximální poƒet vno²en∞ch cyklà
int __Cyklus( int Nov∞, int Poƒet )
//Nov∞ > 0: Otev²ení nového cyklu s N opakováními (vƒetn╪ 0)
//Nov∞ = 0: Dalτí pràchod cyklem
//Nov∞ < 0: P²edƒasné ukonƒení cyklu
{ static int I[__MPVC_];
static int i = -1;
if( Nov∞ > 0 )
{ if( ++i >= __MPVC_)
{ TxtPiτⁿet╪zec("P²íliτ mnoho vno²en∞ch cyklà");
while(1) {Tón(1000);};
}else I[i]=Poƒet;
}else if( Nov∞ == 0 )
{ if(--I[i]<0){ i--; return(0);}
else return(1);
}else return(-(i--)); //Vrací zápornou aktuální hloubku vno²ení
} //Cyklus
void ¼ekejNaReakci(void)
//¼eká na sitsk klávesy nebo tlaƒítka myτi
{ VyprázdniFrontuKláves();
MyτVyprázdniFrontuUdálostí();
¼ekej(NaKlávesu|NaMyτ);
VyprázdniFrontuKláves();
MyτVyprázdniFrontuUdálostí();
} //¼ekejNaReakci
long ¥¼ti¼íslo ( char* Text )
{ long Vrátit = 0;
GrNastavPozici(272, 0);
Gr¼tiL¼íslo(Text,Vrátit,8,1,0xe);
GrNastavPozici(272, 0);
GrPiτⁿet╪zec( " " );
return Vrátit;
} //¥¼ti¼íslo
long BaltEmuluj( char* Text )
{ long Vrátit = 0;
int Klávesa;
int Konec = 0;
TypP²edm╪t P²edm╪t=1;
VyprázdniFrontuKláves();
GrNastavBarvy( 0x7 ); GrSmaºOkno();
GrPiτⁿet╪zec( Text );
Tón(1000); ¼ekej(10); VypniTón();
while (!Konec)
{ int p;
GrNastavPozici(0, GrV∞τkaZnaku);
GrPiτⁿet╪zec( "ⁿá: "); GrPiτL¼íslo( PoziceBaltazaraY(), 2 );
GrPiτⁿet╪zec( ", Sl: " ); GrPiτL¼íslo( PoziceBaltazaraX(), 2 );
GrPiτⁿet╪zec( ", Sm: " );
int s=Sm╪rBaltazara();
GrPiτⁿet╪zec( s==V∞chod ? "V∞chod" :
s==Jih ? "Jih " :
s==Západ ? "Západ " :
"Sever " );
GrPiτⁿet╪zec( ", Ba: " ); NastavBarvu¼arování( p=NastavBarvu¼arování(0));
GrPiτL¼íslo( p, 2 );
GrPiτⁿet╪zec( ", Ry: " ); RychlostBaltazara(p = RychlostBaltazara(0));
GrPiτL¼íslo( p, 2 );
switch ¼tiKlávesuZFrontyS¼ekáním()
{ case KlDoleva: VlevoVbok(); break;
case KlDoprava: VpravoVbok(); break;
case KlNahoru: Popojdi(1); break;
case KlDolà: ¼aruj(Baltedit()); break;
case KlIns: Vrátit = ¥¼ti¼íslo( "¼íslo: " ); break;
case 'B':
case 'b': NastavBarvu¼arování( ¥¼ti¼íslo("Barva: ") ); break;
case 'C':
case 'c': ¼aruj(¼tverec); break;
case 'R':
case 'r': RychlostBaltazara( ¥¼ti¼íslo("Rychlost: ") ); break;
case KlEnter: Konec = 1; break;
} //switch
} //while
GrNastavBarvy( 0x77 ); GrSmaºOkno();
return Vrátit;
} //BaltEmuluj
///////////////////
// Globální makra
//
-o1-Globals ----------------------------------------------------------------
0 ;prom╪nné
;globální prom╪nné (jsou definovány v globálních definicích Ctrl+G):
;prom╪nné celoƒíselné: gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,gKlávesa;
;dalτí p²eddefinované globální prom╪nné mají vºdy p²edponu g..
;a jejich názvy jsou shodné s lokálními prom╪nn∞mi definovan∞mi níºe,
;nap². gD¼íslo1, gⁿet╪zec atd.
;lokální prom╪nné:
;prom╪nné celoƒíselné:
int a,b,c,d,e,f,g,h,i,j,Klávesa, //rozsah -32768..32767
I¼íslo1,I¼íslo2,I¼íslo3,PàvBarvy;
;prom╪nné reálné:
double D¼íslo1,D¼íslo2,D¼íslo3; //rozsah 5.0E-324..1.7E308
;prom╪nná znak:
char Znak;
;prom╪nná ²et╪zec:
string ⁿet╪zec;
[ ;vytvo² Baltazaràv grafick∞ prostor
Vytvo²Prostor(); MyτZaƒátekObsluhy();
] ;zruτ Baltazaràv grafick∞ prostor
MyτKonecObsluhy(); ZruτProstor();
a Klávesa= ¼tiKlávesuZFronty();
b P²epniNaBaltazara();
c ¼aruj(¼tverec);
d Gr¼tiZnak("?",Znak,1,0x07); /* edit ano, ƒerná/sv.τedá*/
╨ return BaltEmuluj("Hodnota?");
e BezObláƒku();
f VyprázdniFrontuKláves();
g Gr¼tiSⁿet╪zec("?",ⁿet╪zec,40,1,0x3f); /*40zn, edit ano, modrá/bílá */
h Gr¼tiI¼íslo("?",I¼íslo1,6,0,0x0e); /* 6zn, edit ne, ƒerná/ºlutá */
i Gr¼tiD¼íslo("?",D¼íslo1,20,1,0x0f); /*20zn, edit ne, ƒerná/bílá */
j GrPiτZnak(Znak);
k Klávesa= ¼tiKlávesuZFrontyS¼ekáním();
l VlevoVbok();
ê BaltEmuluj("STOP");
m ;vypiτ ⁿet╪zec do grafického okénka
PàvBarvy=GrNastavBarvy(Modrá<<4|ªlutá); /*ºlutá na modré */
GrPiτⁿet╪zec(ⁿet╪zec); /*vypíτe obsah prom╪nné ⁿet╪zec*/
GrNastavBarvy(PàvBarvy); /*nastaví pàvodní barvy */
n Neviditeln∞();
o SObláƒkem();
p Popojdi(1);
q GrPiτL¼íslo(I¼íslo1,-1); /* -1 = nejkratτí v∞pis */
r VpravoVbok();
t P²epniNaText();
u GrPiτD¼íslo(D¼íslo1,10,2); /*10 ƒíslic, z toho 2 desetinné*/
v Viditeln∞();
w ;ƒekej na stisk klávesy nebo tlaƒítka myτi
¼ekejNaReakci();
x Skryj();
y Odhal();
z ;ƒelem vzad
VlevoVbok(); VlevoVbok();
B NastavBarvu¼arování /* B:(barva)! 0-15 */
C ¼aruj /* C:(p²edm╪t)! 1-150 */
╤ return BaltEmuluj /* ╤:("Volno")! "Test" */
L NaƒtiScénu /* L:("soubor")! "c:\\pavel\\soubor.s00" */
¥ BaltEmuluj /* ¥:("Text")! "Test" */
N Náhodn╪¼aruj /* N:(p²edm╪t)! 1-150 */
P Popojdi /* P:(poƒet_polí)! 0-14 */
R RychlostBaltazara /* R:(rychlost)! 0-9 */
S UloºScénu /* S:("soubor")! "c:\\pavel\\soubor.s00" */
W ¼ekej /* W:(milisekund)! 0-32000 */
X ¼arujNaPozici /* X:(p²edm╪t,x,y)! 1-150, 1-15, 1-10 */
-c1-Globals ---- (? lze pouºít jako náhrada pouze pro /,*,+) -----------------
?n PràchodnostP²edm╪tuP²edB() Je 0
?p PràchodnostP²edm╪tuP²edB() Je 1
?B Barva¼tverceP²edB() /* Je, Není, <, >, <= ,>= */
?P P²edm╪tP²edB() /* Je, Není, <, >, <= ,>= */
?S Sm╪rBaltazara() /* Je, Není, <, >, <= ,>= */
\b Barva¼tverceP²edB()??
\p P²edm╪tP²edB()??
\s Sm╪rBaltazara()??
\C case
#C ; n-krát #C:(5) 5₧
__CYKLUS
#A ;opakuj vzestupn╪ pro prom╪nnou od,do,krok #A:(i,2,10,2) i=2,4..10
OdDoKrok
#D ;opakuj sestupn╪ pro prom╪nnou od,do,krok #D:(i,10,2,2) i=10,8..2
OdDolàDoKrok
#M ;opakuj n-krát sestupn╪ pro prom╪nnou #M:(i,8) (8x) i=7,6..0
DolàDo0
#N ;opakuj n-krát vzestupn╪ pro prom╪nnou #N:(i,8) (8x) i=0,1..7
Od0
===Globals ------------------------------------------------------------------
/*-hf(*/
/*-hf-*/
void Tl1Klik( void )
/*-hf-*/;
void PreSk1Zm╪na( void )
/*-hf-*/;
void Vyp1Zm╪na( void )
/*-hf-*/;
void TextPole1Zm╪na( void )
/*-hf-*/;
void Okno1XKlik( void )
/*-hf-*/;
void ZniƒOkno( int ID )
/*-hf-*/;
void P²esuσOkno( int x,y,ID )
/*-hf-*/;
void Obnov( void )
/*-hf-*/;
void P²idejPoloºku( int ID,string text )
/*-hf-*/;
void MenuV∞b╪rP²idejPoloºku( int ID, string text )
/*-hf-*/;
int Spus£PopUpMenu( int x2,y2,ID )
/*-hf-*/;
void _KresliMenu( int ID,z )
/*-hf-*/;
int Spus£Menu( int ID )
/*-hf-*/;
int Menu( int x,y,okno,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliV∞b╪r( int ID,z )
/*-hf-*/;
int Spus£V∞b╪r( int ID )
/*-hf-*/;
int V∞b╪r(int x,y,τí²ka,okno,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliP²epínaƒ( int ID )
/*-hf-*/;
int P²epínaƒ( int x,y,char stav,skupina,int okno,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliVypínaƒ( int ID )
/*-hf-*/;
int Vypínaƒ( int x,y,char stav,int okno,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliTextovéPole( int ID )
/*-hf-*/;
string UpravTextovéPole( int ID )
/*-hf-*/;
int TextovéPole(int x,y,τí²ka,styl,okno,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliText( int ID )
/*-hf-*/;
int Text( int x,y,okno, string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliTlaĒtko( int ID,z )
/*-hf-*/;
int Tlaƒítko(int x,y,τí²ka,v∞τka,styl,okno,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
void _KresliOkno( int ID,z )
/*-hf-*/;
int Okno( int x,y,τí²ka,v∞τka,string text,void (*událost)(),void (*popup)() )
/*-hf-*/;
int Události( void )
/*-hf-*/;
void main( void )
/*-hf)*/;
;-h---------------------------------------------------------------------------
void Tl1Klik( void )
-s--Tl1Klik ■ 4 -2 -28 3
Tl1Klik
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int TlOkno,TlTlOk,TlText;
TlOkno=Okno(270,190,100,100,"Okno",NULL,NULL);
TlText=Text(46,46,TlOkno,Objekty[Vyb1].Text,NULL,NULL);
TlTlOk=TlaĒtko(15,70,70,25,0,TlOkno,"Ok",NULL,NULL);
while(Události() != TlTlOk) {}
ZniƒOkno(TlOkno);
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void PreSk1Zm╪na( void )
-s--PreSk1Zm╪na ■ 4 -2 -26 3
PreSk1Zm╪na
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 if(Objekty[Pre1].Spec==1) Objekty[Tl1].Styl=0;
else if(Objekty[Pre2].Spec==1) Objekty[Tl1].Styl=1;
Obnovit=1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void Vyp1Zm╪na( void )
-s--Vyp1Zm╪na ■ 4 -2 -27 3
Vyp1Zm╪na
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 Objekty[Tl1].Viditeln∞=Objekty[Vyp1].Spec;
Obnovit=1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void TextPole1Zm╪na( void )
-s--TextPole1Zm╪na ■ 4 -2 -24 3
TextPole1Zm╪na
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 Objekty[Tl1].Text=Objekty[TextPole1].Text;
Obnovit=1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void Okno1XKlik( void )
-s--Okno1XKlik ■ 4 -2 -26 3
Okno1XKlik
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 Konec=1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void ZniƒOkno( int ID )
-s--ZniƒOkno ■ 4 -2 -27 3
ZniƒOkno
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int tl=StartTlaĒtko,tlvoknu=0,
text=StartText,textvoknu=0,
textpole=StartTextovéPole,textpolevoknu=0,
vyp=StartVypínaƒ,vypvoknu=0,
pre=StartP²epínaƒ,prevoknu=0,
vyb=StartV∞b╪r,vybvoknu=0,
menu=StartMenu,menuvoknu=0;
while(tl!=IDTlaĒtko) {
if(Objekty[tl].Okno==ID) ++tlvoknu;
++tl;
}
IDTlaĒtko-=tlvoknu;
while(textpole!=IDTextovéPole) {
if(Objekty[textpole].Okno==ID) ++textpolevoknu;
++textpole;
}
IDTextovéPole-=textpolevoknu;
while(text!=IDText) {
if(Objekty[text].Okno==ID) ++textvoknu;
++text;
}
IDText-=textvoknu;
while(vyp!=IDVypínaƒ) {
if(Objekty[vyp].Okno==ID) ++vypvoknu;
++vyp;
}
IDVypínaƒ-=vypvoknu;
while(pre!=IDP²epínaƒ) {
if(Objekty[pre].Okno==ID) ++prevoknu;
++pre;
}
IDP²epínaƒ-=prevoknu;
while(vyb!=IDV∞b╪r) {
if(Objekty[vyb].Okno==ID) ++vybvoknu;
++vyb;
}
IDV∞b╪r-=vybvoknu;
while(menu!=IDMenu) {
if(Objekty[menu].Okno==ID) ++menuvoknu;
++menu;
}
IDMenu-=menuvoknu;
--IDOkno;
Obnovit=1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void P²esuσOkno( int x,y,ID )
-s--P²esuσOkno ■ 4 -2 -26 3
P²esuσOkno
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int tl=StartTlaĒtko,
text=StartText,
textpole=StartTextovéPole,
vyp=StartVypínaƒ,
pre=StartP²epínaƒ,
vyb=StartV∞b╪r,
menu=StartMenu;
while(tl!=IDTlaĒtko) {
if(Objekty[tl].Okno==ID) {
Objekty[tl].X=x+(Objekty[tl].X-Objekty[ID].X);
Objekty[tl].Y=y+(Objekty[tl].Y-Objekty[ID].Y);
}
++tl;
}
while(text!=IDText) {
if(Objekty[text].Okno==ID) {
Objekty[text].X=x+(Objekty[text].X-Objekty[ID].X);
Objekty[text].Y=y+(Objekty[text].Y-Objekty[ID].Y);
}
++text;
}
while(textpole!=IDTextovéPole) {
if(Objekty[textpole].Okno==ID) {
Objekty[textpole].X=x+(Objekty[textpole].X-Objekty[ID].X);
Objekty[textpole].Y=y+(Objekty[textpole].Y-Objekty[ID].Y);
}
++textpole;
}
while(vyp!=IDVypínaƒ) {
if(Objekty[vyp].Okno==ID) {
Objekty[vyp].X=x+(Objekty[vyp].X-Objekty[ID].X);
Objekty[vyp].Y=y+(Objekty[vyp].Y-Objekty[ID].Y);
}
++vyp;
}
while(pre!=IDP²epínaƒ) {
if(Objekty[pre].Okno==ID) {
Objekty[pre].X=x+(Objekty[pre].X-Objekty[ID].X);
Objekty[pre].Y=y+(Objekty[pre].Y-Objekty[ID].Y);
}
++pre;
}
while(vyb!=IDV∞b╪r) {
if(Objekty[vyb].Okno==ID) {
Objekty[vyb].X=x+(Objekty[vyb].X-Objekty[ID].X);
Objekty[vyb].Y=y+(Objekty[vyb].Y-Objekty[ID].Y);
}
++vyb;
}
while(menu!=IDMenu) {
if(Objekty[menu].Okno==ID) {
Objekty[menu].X=x+(Objekty[menu].X-Objekty[ID].X);
Objekty[menu].Y=y+(Objekty[menu].Y-Objekty[ID].Y);
}
++menu;
}
Objekty[ID].X=x;
Objekty[ID].Y=y;
Obnovit=1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void Obnov( void )
-s--Obnov ■ 4 -2 -29 3
Obnov
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int okno=0,tl,text,textpole,vyp,pre,vyb,menu;
MyτSchovejKurzor();
GrNastavBarvy(0x66);
GrSmaºOkno();
MyτZobrazKurzor();
while(okno!=IDOkno) {
_KresliOkno(okno,0);
tl=StartTlaĒtko;
while(tl!=IDTlaĒtko) {
if(Objekty[tl].Okno==okno)
_KresliTlaĒtko(tl,0);
++tl;
}
text=StartText;
while(text!=IDText) {
if(Objekty[text].Okno==okno)
_KresliText(text);
++text;
}
textpole=StartTextovéPole;
while(textpole!=IDTextovéPole) {
if(Objekty[textpole].Okno==okno)
_KresliTextovéPole(textpole);
++textpole;
}
vyp=StartVypínaƒ;
while(vyp!=IDVypínaƒ) {
if(Objekty[vyp].Okno==okno)
_KresliVypínaƒ(vyp);
++vyp;
}
pre=StartP²epínaƒ;
while(pre!=IDP²epínaƒ) {
if(Objekty[pre].Okno==okno)
_KresliP²epínaƒ(pre);
++pre;
}
vyb=StartV∞b╪r;
while(vyb!=IDV∞b╪r) {
if(Objekty[vyb].Okno==okno)
_KresliV∞b╪r(vyb,0);
++vyb;
}
menu=StartMenu;
while(menu!=IDMenu) {
if(Objekty[menu].Okno==okno)
_KresliMenu(menu,0);
++menu;
}
++okno;
}
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void P²idejPoloºku( int ID,string text )
-s--P²idejPoloºku ■ 4 -2 -25 3
P²idejPoloºku
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1
Seznamy[ID].Text[Seznamy[ID].Poƒet]=text;
++Seznamy[ID].Poƒet;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void MenuV∞b╪rP²idejPoloºku( int ID, string text )
-s--MenuV∞b╪rP²idejPoloºku ■ 4 -2 -20 3
MenuV∞b╪rP²idejPoloºku
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MenuVybSeznamy[ID].Text[MenuVybSeznamy[ID].Poƒet]=text;
++MenuVybSeznamy[ID].Poƒet;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Spus£PopUpMenu( int x2,y2,ID )
-s--Spus£PopUpMenu ■ 4 -2 -24 3
Spus£PopUpMenu
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int a=0,x,y,y1,sirka;
if(Seznamy[ID].µí²ka==0) sirka=100;
else sirka=Seznamy[ID].µí²ka;
MyτSchovejKurzor();
GrNastavBarvy(0x7f);
GrKresliVypln╪n∞Obdélník(x2,y2,x2+sirka,y2+Seznamy[ID].Poƒet*12+4);
GrKresliObdélník(x2,y2,x2+sirka,y2+Seznamy[ID].Poƒet*12+4);
GrNastavBarvy(0x88);
GrKresliLinku(x2+sirka,y2+Seznamy[ID].Poƒet*12+4,x2+sirka,y2);
GrKresliLinku(x2+sirka,y2+Seznamy[ID].Poƒet*12+4,x2,y2+Seznamy[ID].Poƒet*12+4);
GrNastavBarvy(0x00);
while(a!=Seznamy[ID].Poƒet) {
GrNastavPozici(x2+2,y2+2+a*12);
GrPiτⁿet╪zec(Seznamy[ID].Text[a]);
++a;
}
MyτZobrazKurzor();
MyτNastavPozici(x2+3,y2+3);
MyτNastavRozsah(x2+3,y2+3,x2+97,y2+Seznamy[ID].Poƒet*12+1);
MyτVyprázdniFrontuUdálostí();
while(gMyτUdálost.Typ!=MyτUdálostPravéTlNahoru){
Myτ¼tiUdálost(gMyτUdálost);
y=(gMyτUdálost.Y-y2+2)/12;
if(y!=y1) {
MyτSchovejKurzor();
GrNastavBarvy(0x00);
GrNastavPozici(x2+2,y2+2+y1*12);
GrPiτⁿet╪zec(Seznamy[ID].Text[y1]);
GrNastavBarvy(0x04);
GrNastavPozici(x2+2,y2+2+y*12);
GrPiτⁿet╪zec(Seznamy[ID].Text[y]);
MyτZobrazKurzor();
Myτ¼tiUdálost(gMyτUdálost);
y1=(gMyτUdálost.Y-y2+2)/12;
}
}
Seznamy[ID].V∞b╪r=y1;
MyτNastavRozsah(0,0,GrMaxX(),GrMaxY());
Obnovit=1;
return y;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliMenu( int ID,z )
-s--_KresliMenu ■ 3 -2 -27 3
KresliMenu
/1
│
123!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞ch
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+Objekty[ID].µí²ka;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
2 ;kreslení menu
if(z==0) {
GrNastavBarvy(0x77);
GrKresliVypln╪n∞Obdélník(x1,y1,x2,y2);
GrNastavBarvy(0x00);
GrNastavPozici(x1+2,y1+2);
GrPiτⁿet╪zec(text);
}
else if (z==1) {
GrNastavBarvy(0x77);
GrKresliVypln╪n∞Obdélník(x1,y1,x2,y2);
GrNastavBarvy(0x88);
GrKresliLinku(x1,y1,x1,y2);
GrKresliLinku(x1,y1,x2,y1);
GrNastavBarvy(0xff);
GrKresliLinku(x2,y2,x2,y1-1);
GrKresliLinku(x2,y2,x1-1,y2);
GrNastavBarvy(0x00);
GrNastavPozici(x1+3,y1+3);
GrPiτⁿet╪zec(text);
}
3 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Spus£Menu( int ID )
-s--Spus£Menu ■ 4 -2 -27 3
Spus£Menu
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int a=0,x,y,x1,y1,sirka;
if(MenuVybSeznamy[ID-StartP²epínaƒ].µí²ka==0) sirka=100;
else sirka=MenuVybSeznamy[ID].µí²ka;
MyτSchovejKurzor();
GrNastavBarvy(0x7f);
GrKresliVypln╪n∞Obdélník(Objekty[ID].X,
Objekty[ID].Y+Objekty[ID].V∞τka,
Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
GrKresliObdélník(Objekty[ID].X,
Objekty[ID].Y+Objekty[ID].V∞τka,
Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
GrNastavBarvy(0x88);
GrKresliLinku(Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4,
Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka);
GrKresliLinku(Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4,
Objekty[ID].X,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
GrNastavBarvy(0x00);
while(a!=MenuVybSeznamy[ID].Poƒet) {
GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+a*12);
GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[a]);
++a;
}
MyτZobrazKurzor();
MyτNastavPozici(Objekty[ID].X+3,Objekty[ID].Y+Objekty[ID].V∞τka+3);
MyτNastavRozsah(Objekty[ID].X+3,
Objekty[ID].Y+Objekty[ID].V∞τka+3,
Objekty[ID].X+sirka-3,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+1);
MyτVyprázdniFrontuUdálostí();
while(gMyτUdálost.Typ!=MyτUdálostLevéTlDolà){
Myτ¼tiUdálost(gMyτUdálost);
y=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
if(y!=y1) {
MyτSchovejKurzor();
GrNastavBarvy(0x00);
GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y1*12);
GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y1]);
GrNastavBarvy(0x04);
GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y*12);
GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y]);
MyτZobrazKurzor();
Myτ¼tiUdálost(gMyτUdálost);
y1=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
}
}
MenuVybSeznamy[ID].V∞b╪r=y1;
MyτNastavRozsah(0,0,GrMaxX(),GrMaxY());
Obnovit=1;
return y;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Menu( int x,y,okno,string text,void (*událost)(),void (*popup)() )
-s--Menu ■ 4 -2 -29 3
Menu
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení menu
Objekty[IDMenu].X=x+Objekty[okno].X;
Objekty[IDMenu].Y=y+Objekty[okno].Y;
Objekty[IDMenu].µí²ka=StrDélka(text)*8+4;
Objekty[IDMenu].V∞τka=14;
Objekty[IDMenu].Okno=okno;
Objekty[IDMenu].ID=IDMenu;
Objekty[IDMenu].Text=text;
Objekty[IDMenu].Druh=7;
Objekty[IDMenu].Styl=0;
Objekty[IDMenu].Viditeln∞=1;
if(událost==NULL) Objekty[IDMenu].P²i²azenaUdálost=0;
else {
Objekty[IDMenu].Zm╪na=událost;
Objekty[IDMenu].P²i²azenaUdálost=1;
}
Objekty[IDMenu].PopUp=popup;
Seznamy[IDMenu].Poƒet=0;
MenuVybSeznamy[IDMenu].Poƒet=0;
_KresliMenu(IDMenu,0);
++IDMenu;
return IDMenu-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliV∞b╪r( int ID,z )
-s--_KresliV∞b╪r ■ 6 -2 -25 3
KresliV∞b╪r
/1
│
123456!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞ch
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+Objekty[ID].µí²ka;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
2 ; kreslení v∞b╪ru
GrNastavBarvy(0x88);
GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
GrNastavBarvy(0x00);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
GrNastavBarvy(0x77);
GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
3 ; mazání obsahu
GrNastavBarvy(0xFF);
GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
4 ; vypsání textu
GrNastavPozici(x1+3,y1+3);
GrNastavBarvy(0x00);
GrPiτⁿet╪zec(text);
5 ; kreslení tlaƒítka
x1=x2-13;
y1=y1+2;
y2=y2-2;
x2=x2-2;
GrNastavBarvy(0x70);
GrNastavText(GrTextSPozadím);
GrNastavPozici(x1+1,y1+1);
GrPiτZnak(25);
GrNastavText(GrTextBezPozadí);
if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x88);
GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x00);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
if (z==0) GrNastavBarvy(0x88); else GrNastavBarvy(0xff);
GrKresliLinku(x1+2,y2-2,x2-1,y2-2);
GrKresliLinku(x2-2,y1+2,x2-2,y2-1);
if (z==0) GrNastavBarvy(0x00); else GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
6 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Spus£V∞b╪r( int ID )
-s--Spus£V∞b╪r ■ 4 -2 -26 3
Spus£V∞b╪r
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int a=0,x,y,x1,y1,sirka;
if(MenuVybSeznamy[ID-StartP²epínaƒ].µí²ka==0) sirka=Objekty[ID].µí²ka;
else sirka=MenuVybSeznamy[ID].µí²ka;
MyτSchovejKurzor();
GrNastavBarvy(0xf0);
GrKresliVypln╪n∞Obdélník(Objekty[ID].X,
Objekty[ID].Y+Objekty[ID].V∞τka,
Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
GrKresliObdélník(Objekty[ID].X,
Objekty[ID].Y+Objekty[ID].V∞τka,
Objekty[ID].X+sirka,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
while(a!=MenuVybSeznamy[ID].Poƒet) {
GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+a*12);
GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[a]);
++a;
}
MyτZobrazKurzor();
MyτNastavPozici(Objekty[ID].X+3,Objekty[ID].Y+Objekty[ID].V∞τka+3);
MyτNastavRozsah(Objekty[ID].X+3,
Objekty[ID].Y+Objekty[ID].V∞τka+3,
Objekty[ID].X+sirka-3,
Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+1);
MyτVyprázdniFrontuUdálostí();
while(gMyτUdálost.Typ!=MyτUdálostLevéTlDolà){
Myτ¼tiUdálost(gMyτUdálost);
y=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
if(y!=y1) {
MyτSchovejKurzor();
GrNastavBarvy(0x00);
GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y1*12);
GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y1]);
GrNastavBarvy(0x04);
GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y*12);
GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y]);
MyτZobrazKurzor();
Myτ¼tiUdálost(gMyτUdálost);
y1=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
}
}
Objekty[ID].Text=MenuVybSeznamy[ID].Text[y1];
MenuVybSeznamy[ID].V∞b╪r=y1;
MyτNastavRozsah(0,0,GrMaxX(),GrMaxY());
Obnovit=1;
return y;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int V∞b╪r(int x,y,τí²ka,okno,string text,void (*událost)(),void (*popup)() )
-s--V∞b╪r ■ 4 -2 -29 3
V∞b╪r
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení v∞b╪ru
Objekty[IDV∞b╪r].X=x+Objekty[okno].X;
Objekty[IDV∞b╪r].Y=y+Objekty[okno].Y;
Objekty[IDV∞b╪r].µí²ka=τí²ka;
Objekty[IDV∞b╪r].V∞τka=16;
Objekty[IDV∞b╪r].Okno=okno;
Objekty[IDV∞b╪r].ID=IDV∞b╪r;
Objekty[IDV∞b╪r].Text=text;
Objekty[IDV∞b╪r].Druh=6;
Objekty[IDV∞b╪r].Styl=0;
Objekty[IDV∞b╪r].Viditeln∞=1;
if(událost==NULL) Objekty[IDV∞b╪r].P²i²azenaUdálost=0;
else {
Objekty[IDV∞b╪r].Zm╪na=událost;
Objekty[IDV∞b╪r].P²i²azenaUdálost=1;
}
Objekty[IDV∞b╪r].PopUp=popup;
Seznamy[IDV∞b╪r].Poƒet=0;
MenuVybSeznamy[IDV∞b╪r].Poƒet=0;
_KresliV∞b╪r(IDV∞b╪r,0);
++IDV∞b╪r;
return IDV∞b╪r-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliP²epínaƒ( int ID )
-s--_KresliP²epínaƒ ■ 3 -2 -25 3
KresliP²epínaƒ
/1
│
123456!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞ch
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+14;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
2 ; kreslení vypínaƒe
GrNastavBarvy(0x88);
GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
GrNastavBarvy(0x00);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
GrNastavBarvy(0x77);
GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
3 ; mazání obsahu
GrNastavBarvy(0xFF);
GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
4 ; vypsání textu
GrNastavPozici(x1+17,y1+2);
GrNastavBarvy(0x00);
GrPiτⁿet╪zec(text);
5 ; kreslení ƒtvereƒku
if(Objekty[ID].Spec==1) {
GrNastavBarvy(0x00);
GrKresliVypln╪n∞Obdélník(x1+5,y1+5,x1+9,y1+9);
}
6 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int P²epínaƒ( int x,y,char stav,skupina,int okno,string text,void (*událost)(),void (*popup)() )
-s--P²epínaƒ ■ 4 -2 -27 3
P²epínaƒ
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení p²epínaƒe
Objekty[IDP²epínaƒ].X=x+Objekty[okno].X;
Objekty[IDP²epínaƒ].Y=y+Objekty[okno].Y;
Objekty[IDP²epínaƒ].µí²ka=17+StrDélka(text)*8;
Objekty[IDP²epínaƒ].V∞τka=14;
Objekty[IDP²epínaƒ].Okno=okno;
Objekty[IDP²epínaƒ].ID=IDP²epínaƒ;
Objekty[IDP²epínaƒ].Text=text;
Objekty[IDP²epínaƒ].Druh=5;
Objekty[IDP²epínaƒ].Styl=0;
Objekty[IDP²epínaƒ].Viditeln∞=1;
Objekty[IDP²epínaƒ].Spec=stav;
Objekty[IDP²epínaƒ].Skupina=skupina;
if(událost==NULL) Objekty[IDP²epínaƒ].P²i²azenaUdálost=0;
else {
Objekty[IDP²epínaƒ].Zm╪na=událost;
Objekty[IDP²epínaƒ].P²i²azenaUdálost=1;
}
Seznamy[IDP²epínaƒ].Poƒet=0;
Objekty[IDP²epínaƒ].PopUp=popup;
_KresliP²epínaƒ(IDP²epínaƒ);
++IDP²epínaƒ;
return IDP²epínaƒ-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliVypínaƒ( int ID )
-s--_KresliVypínaƒ ■ 3 -2 -24 3
KresliVypínaƒ
/1
│
123456!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞ch
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+14;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
2 ; kreslení vypínaƒe
GrNastavBarvy(0x88);
GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
GrNastavBarvy(0x00);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
GrNastavBarvy(0x77);
GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
3 ; mazání obsahu
GrNastavBarvy(0xFF);
GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
4 ; vypsání textu
GrNastavPozici(x1+17,y1+2);
GrNastavBarvy(0x00);
GrPiτⁿet╪zec(text);
5 ; kreslení k²íºku
if(Objekty[ID].Spec==1) {
GrNastavBarvy(0x00);
GrKresliLinku(x1+4,y1+4,x1+10,y1+10);
GrKresliLinku(x1+5,y1+4,x1+10,y1+9);
GrKresliLinku(x1+4,y1+5,x1+9,y1+10);
GrKresliLinku(x1+10,y1+4,x1+4,y1+10);
GrKresliLinku(x1+10,y1+5,x1+5,y1+10);
GrKresliLinku(x1+9,y1+4,x1+4,y1+9);
}
6 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Vypínaƒ( int x,y,char stav,int okno,string text,void (*událost)(),void (*popup)() )
-s--Vypínaƒ ■ 4 -2 -28 3
Vypínaƒ
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení vypínaƒe
Objekty[IDVypínaƒ].X=x+Objekty[okno].X;
Objekty[IDVypínaƒ].Y=y+Objekty[okno].Y;
Objekty[IDVypínaƒ].µí²ka=17+StrDélka(text)*8;
Objekty[IDVypínaƒ].V∞τka=14;
Objekty[IDVypínaƒ].Okno=okno;
Objekty[IDVypínaƒ].ID=IDVypínaƒ;
Objekty[IDVypínaƒ].Text=text;
Objekty[IDVypínaƒ].Druh=4;
Objekty[IDVypínaƒ].Styl=0;
Objekty[IDVypínaƒ].Viditeln∞=1;
Objekty[IDVypínaƒ].Spec=stav;
if(událost==NULL) Objekty[IDVypínaƒ].P²i²azenaUdálost=0;
else {
Objekty[IDVypínaƒ].Zm╪na=událost;
Objekty[IDVypínaƒ].P²i²azenaUdálost=1;
}
Seznamy[IDVypínaƒ].Poƒet=0;
Objekty[IDVypínaƒ].PopUp=popup;
_KresliVypínaƒ(IDVypínaƒ);
++IDVypínaƒ;
return IDVypínaƒ-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliTextovéPole( int ID )
-s--_KresliTextovéPole ■ 6 -2 -23 3
KresliTextovéPole
/1
│
12345!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞ch
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+Objekty[ID].µí²ka;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
2 ; kreslení textového pole
GrNastavBarvy(0x88);
GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
GrNastavBarvy(0x00);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
GrNastavBarvy(0x77);
GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
3 ; mazání obsahu
GrNastavBarvy(0xFF);
GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
4 ; vypsání textu
GrNastavPozici(x1+3,y1+3);
GrNastavBarvy(0x00);
GrPiτⁿet╪zec(text);
5 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
string UpravTextovéPole( int ID )
-s--UpravTextovéPole ■ 4 -2 -23 3
UpravTextovéPole
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 int chyba=-1;
do {
GrNastavPozici(Objekty[ID].X+3,Objekty[ID].Y+3);
Gr¼tiSⁿet╪zec(0,Objekty[ID].Text,(Objekty[ID].µí²ka-6)/8,1,0xf0);
if (Objekty[ID].Styl>=1) {
string zprava;
if (Objekty[ID].Styl==1) {
StrNaL¼íslo(Objekty[ID].Text,&chyba);
zprava="Zadejte prosím celé ƒíslo !";
}
else if (Objekty[ID].Styl==2) {
StrNaD¼íslo(Objekty[ID].Text,&chyba);
zprava="Zadejte prosím des. ƒíslo !";
}
if (chyba>=0) {
int OknoChyba,TextChyba,ChybaTlOk;
OknoChyba=Okno(195,185,300,110,"Chyba !",NULL,NULL);
TextChyba=Text(50,50,OknoChyba,zprava,NULL,NULL);
ChybaTlOk=TlaĒtko(115,80,70,25,0,OknoChyba,"Ok",NULL,NULL);
while(Události()!=ChybaTlOk) { }
ZniƒOkno(OknoChyba);
Obnov();
}
}
}
while(chyba>=0);
MyτSchovejKurzor();
GrNastavBarvy(0xff);
GrKresliVypln╪n∞Obdélník(Objekty[ID].X+3,Objekty[ID].Y+3,Objekty[ID].X+Objekty[ID].µí²ka-3,Objekty[ID].Y+Objekty[ID].V∞τka-3);
GrNastavBarvy(0x00);
GrPiτⁿet╪zec(Objekty[ID].Text);
MyτZobrazKurzor();
return Objekty[ID].Text;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int TextovéPole(int x,y,τí²ka,styl,okno,string text,void (*událost)(),void (*popup)() )
-s--TextovéPole ■ 4 -2 -26 3
TextovéPole
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení textového pole
Objekty[IDTextovéPole].X=x+Objekty[okno].X;
Objekty[IDTextovéPole].Y=y+Objekty[okno].Y;
Objekty[IDTextovéPole].µí²ka=τí²ka;
Objekty[IDTextovéPole].V∞τka=16;
Objekty[IDTextovéPole].Okno=okno;
Objekty[IDTextovéPole].ID=IDTextovéPole;
Objekty[IDTextovéPole].Text=text;
Objekty[IDTextovéPole].Druh=3;
Objekty[IDTextovéPole].Styl=styl;
Objekty[IDTextovéPole].Viditeln∞=1;
if(událost==NULL) Objekty[IDTextovéPole].P²i²azenaUdálost=0;
else {
Objekty[IDTextovéPole].Zm╪na=událost;
Objekty[IDTextovéPole].P²i²azenaUdálost=1;
}
Seznamy[IDTextovéPole].Poƒet=0;
Objekty[IDTextovéPole].PopUp=popup;
_KresliTextovéPole(IDTextovéPole);
++IDTextovéPole;
return IDTextovéPole-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliText( int ID )
-s--_KresliText ■ 3 -2 -27 3
KresliText
/1
│
123!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
2 ; kreslení textu
GrNastavPozici(Objekty[ID].X+1,Objekty[ID].Y+1);
GrNastavBarvy(0xff);
GrPiτⁿet╪zec(Objekty[ID].Text);
GrNastavPozici(Objekty[ID].X,Objekty[ID].Y);
GrNastavBarvy(0x00);
GrPiτⁿet╪zec(Objekty[ID].Text);
3 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Text( int x,y,okno, string text,void (*událost)(),void (*popup)() )
-s--Text ■ 4 -2 -29 3
Text
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení textu
Objekty[IDText].X=x+Objekty[okno].X;
Objekty[IDText].Y=y+Objekty[okno].Y;
Objekty[IDText].µí²ka=StrDélka(text)*8;
Objekty[IDText].V∞τka=10;
Objekty[IDText].Okno=okno;
Objekty[IDText].ID=IDText;
Objekty[IDText].Text=text;
Objekty[IDText].Druh=2;
Objekty[IDText].Styl=0;
Objekty[IDText].Viditeln∞=1;
if(událost==NULL) Objekty[IDText].P²i²azenaUdálost=0;
else {
Objekty[IDText].Klik=událost;
Objekty[IDText].P²i²azenaUdálost=1;
}
Seznamy[IDText].Poƒet=0;
Objekty[IDText].PopUp=popup;
_KresliText(IDText);
++IDText;
return IDText-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliTlaĒtko( int ID,z )
-s--_KresliTlaƒítko ■ 4 -2 -25 3
KresliTlaĒtko
/1
│
12345!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞chb
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+Objekty[ID].µí²ka;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
2 ; kreslení tlaƒítka
if (Objekty[ID].Styl==0) {
if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x88);
GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x00);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
if (z==0) GrNastavBarvy(0x88); else GrNastavBarvy(0xff);
GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
if (z==0) GrNastavBarvy(0x00); else GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
}
else if (Objekty[ID].Styl==1) {
if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x88);
GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
if (z==0) GrNastavBarvy(0x88); else GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
}
3 ; mazání obsahu
GrNastavBarvy(0x77);
GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
4 ; psaní textu
GrNastavBarvy(0x70);
if (z==0) GrNastavPozici((((x2-x1)-(strlen(text)*8))/2)+x1,(((y2-y1)-10)/2)+y1);
else GrNastavPozici((((x2-x1)-(strlen(text)*8))/2)+x1+1,(((y2-y1)-10)/2)+y1+1);
GrPiτⁿet╪zec(text);
5 MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/1 ; Objekt je viditeln∞
Objekty[ID].Viditeln∞==1
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Tlaƒítko(int x,y,τí²ka,v∞τka,styl,okno,string text,void (*událost)(),void (*popup)() )
-s--Tlaƒítko ■ 4 -2 -27 3
TlaĒtko
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení tlaƒítka
Objekty[IDTlaĒtko].X=x+Objekty[okno].X;
Objekty[IDTlaĒtko].Y=y+Objekty[okno].Y;
Objekty[IDTlaƒítko].µí²ka=τí²ka;
Objekty[IDTlaƒítko].V∞τka=v∞τka;
Objekty[IDTlaĒtko].Okno=okno;
Objekty[IDTlaĒtko].ID=IDTlaĒtko;
Objekty[IDTlaĒtko].Text=text;
Objekty[IDTlaĒtko].Druh=1;
Objekty[IDTlaĒtko].Styl=styl;
Objekty[IDTlaƒítko].Viditeln∞=1;
if(událost==NULL) Objekty[IDTlaƒítko].P²i²azenaUdálost=0;
else {
Objekty[IDTlaƒítko].Klik=událost;
Objekty[IDTlaƒítko].P²i²azenaUdálost=1;
}
Seznamy[IDTlaƒítko].Poƒet=0;
Objekty[IDTlaĒtko].PopUp=popup;
_KresliTlaĒtko(IDTlaĒtko,0);
++IDTlaĒtko;
return IDTlaĒtko-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void _KresliOkno( int ID,z )
-s--_KresliOkno ■ 4 -2 -27 3
KresliOkno
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 MyτSchovejKurzor();
; vytvo²ení a p²i²azení prom╪nn∞chb
int x1,x2,y1,y2;
string text;
x1=Objekty[ID].X;
x2=Objekty[ID].X+Objekty[ID].µí²ka;
y1=Objekty[ID].Y;
y2=Objekty[ID].Y+Objekty[ID].V∞τka;
text=Objekty[ID].Text;
if(z==0) {
; kreslení okrajà
GrNastavBarvy(0x77);
GrKresliLinku(x1,y1,x2,y1);
GrKresliLinku(x1,y1,x1,y2);
GrNastavBarvy(0x00);
GrKresliLinku(x2,y1,x2,y2);
GrKresliLinku(x2,y2,x1,y2);
GrNastavBarvy(0xff);
GrKresliLinku(x1+1,y1+1,x2-1,y1+1);
GrKresliLinku(x1+1,y1+1,x1+1,y2-1);
GrKresliLinku(x1,y1,x2-1,y1);
GrKresliLinku(x1,y1,x1,y2-1);
GrNastavBarvy(0x88);
GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
GrKresliLinku(x2-1,y2-1,x1+1,y2-1);
GrNastavBarvy(0x77);
GrKresliVypln╪n∞Obdélník(x1+2,y1+2,x2-2,y2-2);
; kreslení k²íºku
GrNastavBarvy(0x00);
GrKresliLinku(x2-10,y1+8,x2-17,y1+15);
GrKresliLinku(x2-11,y1+8,x2-18,y1+15);
GrKresliLinku(x2-10,y1+15,x2-17,y1+8);
GrKresliLinku(x2-11,y1+15,x2-18,y1+8);
; titulek
GrNastavBarvy(0x44);
GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-26,y1+19);
GrNastavBarvy(0x4f);
GrNastavPozici(x1+9,y1+6);
GrPiτⁿet╪zec(text);
}
else if (z==1) {
GrNastavBarvy(0x77);
GrKresliVypln╪n∞Obdélník(x2-10,y1+8,x2-18,y1+15);
GrNastavBarvy(0x00);
GrKresliLinku(x2-9,y1+9,x2-16,y1+16);
GrKresliLinku(x2-10,y1+9,x2-17,y1+16);
GrKresliLinku(x2-9,y1+16,x2-16,y1+9);
GrKresliLinku(x2-10,y1+16,x2-17,y1+9);
}
else if (z==2) {
GrNastavBarvy(0x77);
GrKresliVypln╪n∞Obdélník(x2-9,y1+9,x2-17,y1+16);
GrNastavBarvy(0x00);
GrKresliLinku(x2-10,y1+8,x2-17,y1+15);
GrKresliLinku(x2-11,y1+8,x2-18,y1+15);
GrKresliLinku(x2-10,y1+15,x2-17,y1+8);
GrKresliLinku(x2-11,y1+15,x2-18,y1+8);
}
MyτZobrazKurzor();
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Okno( int x,y,τí²ka,v∞τka,string text,void (*událost)(),void (*popup)() )
-s--Okno ■ 4 -2 -29 3
Okno
1!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
1 ;registrace a kreslení tlaƒítka
Objekty[IDOkno].X=x;
Objekty[IDOkno].Y=y;
Objekty[IDOkno].µí²ka=τí²ka;
Objekty[IDOkno].V∞τka=v∞τka;
Objekty[IDOkno].Druh=0;
Objekty[IDOkno].ID=IDOkno;
Objekty[IDOkno].Text=text;
if(událost==NULL) Objekty[IDOkno].P²i²azenaUdálost=0;
else {
Objekty[IDOkno].Klik=událost;
Objekty[IDOkno].P²i²azenaUdálost=1;
}
Objekty[IDOkno].PopUp=popup;
_KresliOkno(IDOkno,0);
++IDOkno;
return IDOkno-1;
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
int Události( void )
-s--Události ■ 14 -2 -11 3
Události
0!
Klik
M!
_______________________│_____
│ Obnovit?_________
____|____________ /:Obnovit==1 /
/T / Ano Ne
stisk~tl~myτi nic :Obnov()!
123456789! :Obnovit=0!
A!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
0 int tl=StartTlaĒtko,
okno=IDOkno-1,
text=StartText,
textpole=StartTextovéPole,
vyp=StartVypínaƒ,
pre=StartP²epínaƒ,
vyb=StartV∞b╪r,
menu=StartMenu;
M Myτ¼tiUdálost(gMyτUdálost);
1 ; je stisk tlaƒítka u myτi i objektu
tl=StartTlaĒtko;
while (tl!=IDTlaĒtko) {
; je stisknuto viditelné tlaƒítko ?
if(gMyτUdálost.X>Objekty[tl].X &&
gMyτUdálost.Y>Objekty[tl].Y &&
gMyτUdálost.X<Objekty[tl].X+Objekty[tl].µí²ka &&
gMyτUdálost.Y<Objekty[tl].Y+Objekty[tl].V∞τka &&
Objekty[tl].Okno==okno &&
Objekty[tl].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[tl].Poƒet!=0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,tl);
Objekty[tl].PopUp();
return -1;
}
else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
_KresliTlaĒtko(tl,1);
while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru)
{ Myτ¼tiUdálost(gMyτUdálost); }
_KresliTlaĒtko(tl,0);
if (Objekty[tl].P²i²azenaUdálost==1) Objekty[tl].Klik();
return tl;
}
}
++tl;
}
2 ; je p²esunuto aktivní okno
if (gMyτUdálost.X>Objekty[okno].X+2 &&
gMyτUdálost.Y>Objekty[okno].Y+2 &&
gMyτUdálost.X<Objekty[okno].X+Objekty[okno].µí²ka-25 &&
gMyτUdálost.Y<Objekty[okno].Y+20) {
int xok=gMyτUdálost.X-Objekty[okno].X, /* xok = X Okno Klik (bod kliku od levého horního rohu)*/
yok=gMyτUdálost.Y-Objekty[okno].Y,
mx=gMyτUdálost.X,
my=gMyτUdálost.Y,
mx1=gMyτUdálost.X,
my1=gMyτUdálost.Y;
GrNastavBarvuPop²edí(Bílá);
GrNastavLinku(GrLinkaZpàsobKresleníXor);
while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru) {
Myτ¼tiUdálost(gMyτUdálost);
mx1=gMyτUdálost.X;
my1=gMyτUdálost.Y;
if(mx!=mx1 || my!=my1) { /* pohyb myτí */
MyτSchovejKurzor();
GrKresliObdélník(mx1-xok,my1-yok,mx1-xok+Objekty[okno].µí²ka,my1-yok+Objekty[okno].V∞τka);
GrKresliObdélník(mx-xok,my-yok,mx-xok+Objekty[okno].µí²ka,my-yok+Objekty[okno].V∞τka);
Myτ¼tiUdálost(gMyτUdálost);
mx=gMyτUdálost.X;
my=gMyτUdálost.Y;
MyτZobrazKurzor();
}
}
GrNastavLinku(GrLinkaZpàsobKresleníNormáln╪);
P²esuσOkno(mx-xok,my-yok,okno);
Obnov();
return -1;
}
3 ; stisk v oblasti k²íºku
if(gMyτUdálost.X>Objekty[okno].X+Objekty[okno].µí²ka-19 && gMyτUdálost.Y>Objekty[okno].Y+7 && gMyτUdálost.X<Objekty[okno].X+Objekty[okno].µí²ka-11 && gMyτUdálost.Y<Objekty[okno].Y+15) {
_KresliOkno(okno,1);
while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru) { Myτ¼tiUdálost(gMyτUdálost); }
_KresliOkno(okno,2);
if (Objekty[okno].P²i²azenaUdálost==1) Objekty[okno].Klik();
return okno;
}
4 ; stisk v oblasti textu
while (text!=IDText) {
if(gMyτUdálost.X>Objekty[text].X &&
gMyτUdálost.Y>Objekty[text].Y &&
gMyτUdálost.X<Objekty[text].X+Objekty[text].µí²ka &&
gMyτUdálost.Y<Objekty[text].Y+Objekty[text].V∞τka &&
Objekty[text].Okno==okno &&
Objekty[text].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[text].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,text);
Objekty[text].PopUp();
return -1;
}
else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru)
{ Myτ¼tiUdálost(gMyτUdálost); }
if (Objekty[text].P²i²azenaUdálost==1) Objekty[text].Klik();
return text;
}
}
++text;
}
5 ; stisk v oblasti textového pole
while (textpole!=IDTextovéPole) {
if(gMyτUdálost.X>Objekty[textpole].X &&
gMyτUdálost.Y>Objekty[textpole].Y &&
gMyτUdálost.X<Objekty[textpole].X+Objekty[textpole].µí²ka &&
gMyτUdálost.Y<Objekty[textpole].Y+Objekty[textpole].V∞τka &&
Objekty[textpole].Okno==okno &&
Objekty[textpole].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[textpole].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,textpole);
Objekty[textpole].PopUp();
return -1;
}
else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
UpravTextovéPole(textpole);
if (Objekty[textpole].P²i²azenaUdálost==1) Objekty[textpole].Zm╪na();
return textpole;
}
}
++textpole;
}
6 ; stisk v oblasti vypínaƒe
while (vyp!=IDVypínaƒ) {
if(gMyτUdálost.X>Objekty[vyp].X &&
gMyτUdálost.Y>Objekty[vyp].Y &&
gMyτUdálost.X<Objekty[vyp].X+Objekty[vyp].µí²ka &&
gMyτUdálost.Y<Objekty[vyp].Y+Objekty[vyp].V∞τka &&
Objekty[vyp].Okno==okno &&
Objekty[vyp].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[vyp].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,vyp);
Objekty[vyp].PopUp();
return -1;
}
else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
if (Objekty[vyp].Spec==1) Objekty[vyp].Spec=0;
else if (Objekty[vyp].Spec==0) Objekty[vyp].Spec=1;
_KresliVypínaƒ(vyp);
if (Objekty[vyp].P²i²azenaUdálost==1) Objekty[vyp].Zm╪na();
return vyp;
}
}
++vyp;
}
7 ; stisk v oblasti p²epínaƒe
while (pre!=IDP²epínaƒ) {
if(gMyτUdálost.X>Objekty[pre].X &&
gMyτUdálost.Y>Objekty[pre].Y &&
gMyτUdálost.X<Objekty[pre].X+Objekty[pre].µí²ka &&
gMyτUdálost.Y<Objekty[pre].Y+Objekty[pre].V∞τka &&
Objekty[pre].Okno==okno &&
Objekty[pre].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[pre].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,pre);
Objekty[pre].PopUp();
return -1;
}
else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
int pre1=StartP²epínaƒ;
while (pre1!=IDP²epínaƒ) {
if(Objekty[pre1].Skupina==Objekty[pre].Skupina && pre1!=pre) {
Objekty[pre1].Spec=0;
_KresliP²epínaƒ(pre1);
}
++pre1;
}
Objekty[pre].Spec=1;
_KresliP²epínaƒ(pre);
if (Objekty[pre].P²i²azenaUdálost==1) Objekty[pre].Zm╪na();
return pre;
}
}
++pre;
}
8 ; stisk v oblasti tlaƒíka v∞b╪ru
while (vyb!=IDV∞b╪r) {
if(gMyτUdálost.X>Objekty[vyb].X+Objekty[vyb].µí²ka-13 &&
gMyτUdálost.Y>Objekty[vyb].Y+2 &&
gMyτUdálost.X<Objekty[vyb].X+Objekty[vyb].µí²ka-2 &&
gMyτUdálost.Y<Objekty[vyb].Y+Objekty[vyb].V∞τka-2 &&
Objekty[vyb].Okno==okno &&
Objekty[vyb].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
_KresliV∞b╪r(vyb,1);
while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru)
{ Myτ¼tiUdálost(gMyτUdálost); }
_KresliV∞b╪r(vyb,0);
Spus£V∞b╪r(vyb);
if (Objekty[vyb].P²i²azenaUdálost==1) Objekty[vyb].Zm╪na();
return vyb;
}
}
if(gMyτUdálost.X>Objekty[vyb].X &&
gMyτUdálost.Y>Objekty[vyb].Y &&
gMyτUdálost.X<Objekty[vyb].X+Objekty[vyb].µí²ka &&
gMyτUdálost.Y<Objekty[vyb].Y+Objekty[vyb].V∞τka &&
Objekty[vyb].Okno==okno &&
Objekty[vyb].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[vyb].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,vyb);
Objekty[vyb].PopUp();
return -1;
}
}
++vyb;
}
9 ; stisk v oblasti menu
menu=StartMenu;
while (menu!=IDMenu) {
if(gMyτUdálost.X>Objekty[menu].X &&
gMyτUdálost.Y>Objekty[menu].Y &&
gMyτUdálost.X<Objekty[menu].X+Objekty[menu].µí²ka &&
gMyτUdálost.Y<Objekty[menu].Y+Objekty[menu].V∞τka &&
Objekty[menu].Okno==okno &&
Objekty[menu].Viditeln∞==1) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[menu].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,menu);
Objekty[menu].PopUp();
return -1;
}
else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
_KresliMenu(menu,1);
Spus£Menu(menu);
if (Objekty[menu].P²i²azenaUdálost==1) Objekty[menu].Zm╪na();
return menu;
}
}
++menu;
}
A ; stisk v oblasti okna (pro PopUp)
if(gMyτUdálost.X>Objekty[okno].X &&
gMyτUdálost.Y>Objekty[okno].Y+20 &&
gMyτUdálost.X<Objekty[okno].X+Objekty[okno].µí²ka &&
gMyτUdálost.Y<Objekty[okno].Y+Objekty[okno].V∞τka) {
if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[okno].Poƒet>0) {
Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,okno);
Objekty[okno].PopUp();
return -1;
}
}
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
/T gMyτUdálost.Typ == MyτUdálostLevéTlDolà || gMyτUdálost.Typ == MyτUdálostPravéTlDolà
=SP---------------------------------------------------------------------------
;-h---------------------------------------------------------------------------
void main( void )
-s--Init ■ 17 -2 -9 3
______________Init______________________________
Zaƒátek ____Prost²edek_________________ Konec
0[! /:GrafickáKarta()>=KartaVGA / !]
Karta~Vyhovuje Karta~Nevyhovuje
12! :P²epniNaText()!
e N!
3! :Tón(1000)!
:¼ekej(500)!
:VypniTón()!
:¼ekejNaKlávesu()!
-o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
0
[ ;vytvo² Baltazaràv grafick∞ prostor
Vytvo²Prostor(); MyτZaƒátekObsluhy();
] ;zruτ Baltazaràv grafick∞ prostor
MyτKonecObsluhy(); ZruτProstor();
1 GrNaƒtiPaletu("*\\GUI.pal");
GrNastavMód(GrMódVGA);
GrNastavV∞stup(2);
GrNastavBarvy(0x66);
GrSmaºOkno();
MyτZobrazKurzor();
GrNastavText(GrTextBezPozadí);
2 ; Uºivatelské objekty
Okno1=Okno(170,145,300,120,"Demonstraƒní okno",Okno1XKlik,NULL);
Tl1=TlaĒtko(11,85,70,20,0,Okno1,"TlaĒtko",Tl1Klik,NULL);
TextPole1=TextovéPole(10,40,100,0,Okno1,"Tlaƒítko",TextPole1Zm╪na,NULL);
Text1=Text(9,27,Okno1,"Text tlaĒtka",NULL,NULL);
Vyp1=Vypínaƒ(11,63,1,Okno1,"Viditelné",Vyp1Zm╪na,NULL);
Pre1=P²epínaƒ(89,88,1,0,Okno1,"Normální",PreSk1Zm╪na,NULL);
Pre2=P²epínaƒ(178,88,0,0,Okno1,"Ploché",PreSk1Zm╪na,NULL);
Vyb1=V∞b╪r(135,54,100,Okno1,"1",NULL,NULL);
MenuV∞b╪rP²idejPoloºku(Vyb1,"1");
MenuV∞b╪rP²idejPoloºku(Vyb1,"2");
3 while(Konec==0) {
Události();
}
N TxtPiτⁿet╪zec("Nevyhovující grafická karta !!!");
-c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
=SP---------------------------------------------------------------------------
//
// Konec souboru
//////////////////