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 >
Text File  |  2002-09-17  |  64KB  |  1,799 lines

  1. SGPC   5.03 CZ0#352N00227 22.06.2024 23:17:03                                    StructNo16  16
  2.  
  3. # include <sgpbalt.h>
  4.  
  5. //////////////////////
  6. // Globální prom╪nné
  7. //
  8. // prom╪nné celoƒíselné:
  9.      int     gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,       // rozsah -32768..32767
  10.              gI¼íslo1,gI¼íslo2,gI¼íslo3,gPàvBarvy;
  11.              // gKlávesa je souƒástí knihovny Baltazara
  12. // prom╪nné reálné:
  13.      double  gD¼íslo1,gD¼íslo2,gD¼íslo3;          // rozsah 5.0E-324..1.7E308
  14. // prom╪nná znak:
  15.      char    gZnak;
  16. // prom╪nná ²et╪zec:
  17.      string  gⁿet╪zec;
  18. struct  GUIObjekt {
  19.           int
  20.             µí²ka,V∞τka,
  21.             X,Y,
  22.             Okno, /* Okno, ke kterému objekt náleºí. */
  23.             ID;   /* Pracovní identifikaƒní ƒíslo. */
  24.           char
  25.             Spec, /* Specifická prom╪nná (nap². stav u vypínaƒe). */
  26.             Druh, /* Druh objektu (nap². 0=Okno,1=Tlaƒítko ...). */
  27.             Styl, /* Styl objektu (nap². v p²ípad╪ tlaƒítka 0=obyƒejné,1=ploché ...). */
  28.             Viditeln∞, /* Viditelnost objektu (1=viditeln∞,0=neviditeln∞) */
  29.             Skupina, /* V p²ípad╪ p²epínaƒe urƒuje skupinu. */
  30.             P²i²azenaUdálost; /* No Comment ;) */
  31.           string
  32.             Text; /* Text, kter∞ je na objektu napsán. */
  33.           void
  34.             (*Klik)(),  /* Událost klik na objekt */
  35.             (*Zm╪na)(), /* Událost zm╪na hodnoty (nap². zm╪na textového pole, zm╪na stavu vypínaƒe ... */
  36.             (*PopUp)(); /* Událost vybrání poloºky PupUp menu */
  37.         } Objekty[105]; /* Hlavní pole, které zdruºuje vτechny objekty.(index=ID) */
  38.  
  39. typedef struct Seznam {
  40.          string
  41.            Text[20];  /* Text poloºky. */
  42.          int
  43.            Poƒet, /* Poƒet poloºek. */
  44.            V∞b╪r; /* ¼íslo vybrané poloºky. */
  45.            µí²ka; /* µí²ka seznamu v bodech. */
  46.        } TSeznam;
  47. # define StartTlaƒítko 5     /* Poƒáteƒní ID Tlaƒítka */
  48. # define StartText 15        /* Poƒáteƒní ID Textu */
  49. # define StartTextovéPole 40 /* Poƒáteƒní ID Textového pole */
  50. # define StartVypínaƒ 60     /* Poƒáteƒní ID Vypínaƒe */
  51. # define StartP²epínaƒ 70    /* Poƒáteƒní ID P²epínƒe */
  52. # define StartV∞b╪r 85       /* Poƒáteƒní ID V∞b╪ru */
  53. # define StartMenu 95       /* Poƒáteƒní ID V∞b╪ru */
  54.  
  55.  
  56. int IDTlaƒítko=StartTlaƒítko,
  57.     IDText=StartText,
  58.     IDTextovéPole=StartTextovéPole,
  59.     IDOkno=0,
  60.     IDVypínaƒ=StartVypínaƒ,
  61.     IDP²epínaƒ=StartP²epínaƒ;
  62.     IDV∞b╪r=StartV∞b╪r,
  63.     IDMenu=StartMenu,
  64.     IDSeznamy=StartV∞b╪r,
  65.     Obnovit=0;
  66.  
  67. TSeznam Seznamy[105],MenuVybSeznamy[105];
  68.  
  69. int Konec=0;
  70. int Okno1,Tl1,TextPole1,Text1,Vyp1,Pre1,Pre2,Vyb1,Menu1;
  71.  
  72. /////////////////////
  73. // Pomocné definice
  74. //
  75.  
  76. #define NE      0
  77. #define ANO     1
  78.  
  79. #define ABS(x)  ((x)>0?(x):-(x))
  80.  
  81. #define __CYKLUS(N)   __Cyklus(1,N);__Cyklus(0,N);   //Hlava cyklu
  82. #define __MPVC_ 100   //Maximální poƒet vno²en∞ch cyklà
  83.  
  84. int __Cyklus( int Nov∞, int Poƒet )
  85. //Nov∞ > 0: Otev²ení nového cyklu s N opakováními (vƒetn╪ 0)
  86. //Nov∞ = 0: Dalτí pràchod cyklem
  87. //Nov∞ < 0: P²edƒasné ukonƒení cyklu
  88. { static int I[__MPVC_];
  89.   static int i = -1;
  90.   if( Nov∞ > 0 )
  91.   { if( ++i >= __MPVC_)
  92.     { TxtPiτⁿet╪zec("P²íliτ mnoho vno²en∞ch cyklà");
  93.       while(1) {Tón(1000);};
  94.     }else I[i]=Poƒet;
  95.   }else if( Nov∞ == 0 )
  96.   { if(--I[i]<0){ i--; return(0);}
  97.                   else return(1);
  98.   }else return(-(i--));  //Vrací zápornou aktuální hloubku vno²ení
  99. }  //Cyklus
  100.  
  101. void ¼ekejNaReakci(void)
  102. //¼eká na sitsk klávesy nebo tlaƒítka myτi
  103. { VyprázdniFrontuKláves();
  104.   MyτVyprázdniFrontuUdálostí();
  105.   ¼ekej(NaKlávesu|NaMyτ);
  106.   VyprázdniFrontuKláves();
  107.   MyτVyprázdniFrontuUdálostí();
  108. } //¼ekejNaReakci
  109.  
  110. long ¥¼ti¼íslo ( char* Text )
  111. { long Vrátit = 0;
  112.   GrNastavPozici(272, 0);
  113.   Gr¼tiL¼íslo(Text,Vrátit,8,1,0xe);
  114.   GrNastavPozici(272, 0);
  115.   GrPiτⁿet╪zec( "               " );
  116.   return Vrátit;
  117. } //¥¼ti¼íslo
  118.  
  119. long BaltEmuluj( char* Text )
  120. { long       Vrátit = 0;
  121.   int        Klávesa;
  122.   int        Konec = 0;
  123.   TypP²edm╪t P²edm╪t=1;
  124.   VyprázdniFrontuKláves();
  125.   GrNastavBarvy( 0x7 );  GrSmaºOkno();
  126.   GrPiτⁿet╪zec( Text );
  127.   Tón(1000); ¼ekej(10); VypniTón();
  128.   while (!Konec)
  129.   { int p;
  130.     GrNastavPozici(0, GrV∞τkaZnaku);
  131.     GrPiτⁿet╪zec( "ⁿá: "); GrPiτL¼íslo( PoziceBaltazaraY(), 2 );
  132.     GrPiτⁿet╪zec( ",  Sl: " ); GrPiτL¼íslo( PoziceBaltazaraX(), 2 );
  133.     GrPiτⁿet╪zec( ",  Sm: " );
  134.     int s=Sm╪rBaltazara();
  135.     GrPiτⁿet╪zec( s==V∞chod ? "V∞chod" :
  136.                   s==Jih    ? "Jih   " :
  137.                   s==Západ  ? "Západ " :
  138.                               "Sever " );
  139.     GrPiτⁿet╪zec( ",  Ba: " ); NastavBarvu¼arování( p=NastavBarvu¼arování(0));
  140.                               GrPiτL¼íslo( p, 2 );
  141.     GrPiτⁿet╪zec( ",  Ry: " ); RychlostBaltazara(p = RychlostBaltazara(0));
  142.                               GrPiτL¼íslo( p, 2 );
  143.     switch ¼tiKlávesuZFrontyS¼ekáním()
  144.     { case KlDoleva:   VlevoVbok(); break;
  145.       case KlDoprava:  VpravoVbok(); break;
  146.       case KlNahoru:   Popojdi(1); break;
  147.       case KlDolà:     ¼aruj(Baltedit()); break;
  148.       case KlIns:      Vrátit = ¥¼ti¼íslo( "¼íslo: " ); break;
  149.       case 'B':
  150.       case 'b':        NastavBarvu¼arování( ¥¼ti¼íslo("Barva: ") ); break;
  151.       case 'C':
  152.       case 'c':        ¼aruj(¼tverec); break;
  153.       case 'R':
  154.       case 'r':        RychlostBaltazara( ¥¼ti¼íslo("Rychlost: ") ); break;
  155.       case KlEnter:    Konec = 1; break;
  156.     } //switch
  157.   } //while
  158.   GrNastavBarvy( 0x77 ); GrSmaºOkno();
  159.   return Vrátit;
  160. } //BaltEmuluj
  161.  
  162.  
  163. ///////////////////
  164. // Globální makra
  165. //
  166. -o1-Globals ----------------------------------------------------------------
  167. 0 ;prom╪nné
  168.   ;globální prom╪nné (jsou definovány v globálních definicích  Ctrl+G):
  169.     ;prom╪nné celoƒíselné: gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,gKlávesa;
  170.        ;dalτí p²eddefinované globální prom╪nné mají vºdy p²edponu g..
  171.        ;a jejich názvy jsou shodné s lokálními prom╪nn∞mi definovan∞mi níºe,
  172.        ;nap². gD¼íslo1, gⁿet╪zec atd.
  173.   ;lokální prom╪nné:
  174.     ;prom╪nné celoƒíselné:
  175.        int     a,b,c,d,e,f,g,h,i,j,Klávesa,      //rozsah -32768..32767
  176.                I¼íslo1,I¼íslo2,I¼íslo3,PàvBarvy;
  177.     ;prom╪nné reálné:
  178.        double  D¼íslo1,D¼íslo2,D¼íslo3;          //rozsah 5.0E-324..1.7E308
  179.     ;prom╪nná znak:
  180.        char    Znak;
  181.     ;prom╪nná ²et╪zec:
  182.        string  ⁿet╪zec;
  183. [ ;vytvo² Baltazaràv grafick∞ prostor
  184.    Vytvo²Prostor(); MyτZaƒátekObsluhy();
  185. ] ;zruτ Baltazaràv grafick∞ prostor
  186.    MyτKonecObsluhy(); ZruτProstor();
  187. a Klávesa= ¼tiKlávesuZFronty();
  188. b P²epniNaBaltazara();
  189. c ¼aruj(¼tverec);
  190. d Gr¼tiZnak("?",Znak,1,0x07);            /*      edit ano, ƒerná/sv.τedá*/
  191. ╨ return BaltEmuluj("Hodnota?");
  192. e BezObláƒku();
  193. f VyprázdniFrontuKláves();
  194. g Gr¼tiSⁿet╪zec("?",ⁿet╪zec,40,1,0x3f);  /*40zn, edit ano, modrá/bílá   */
  195. h Gr¼tiI¼íslo("?",I¼íslo1,6,0,0x0e);     /* 6zn, edit  ne, ƒerná/ºlutá  */
  196. i Gr¼tiD¼íslo("?",D¼íslo1,20,1,0x0f);    /*20zn, edit  ne, ƒerná/bílá   */
  197. j GrPiτZnak(Znak);
  198. k Klávesa= ¼tiKlávesuZFrontyS¼ekáním();
  199. l VlevoVbok();
  200. ê BaltEmuluj("STOP");
  201. m ;vypiτ ⁿet╪zec do grafického okénka
  202.    PàvBarvy=GrNastavBarvy(Modrá<<4|ªlutá); /*ºlutá na modré             */
  203.    GrPiτⁿet╪zec(ⁿet╪zec);                /*vypíτe obsah prom╪nné ⁿet╪zec*/
  204.    GrNastavBarvy(PàvBarvy);              /*nastaví pàvodní barvy        */
  205. n Neviditeln∞();
  206. o SObláƒkem();
  207. p Popojdi(1);
  208. q GrPiτL¼íslo(I¼íslo1,-1);               /* -1 = nejkratτí v∞pis        */
  209. r VpravoVbok();
  210. t P²epniNaText();
  211. u GrPiτD¼íslo(D¼íslo1,10,2);             /*10 ƒíslic, z toho 2 desetinné*/
  212. v Viditeln∞();
  213. w ;ƒekej na stisk klávesy nebo tlaƒítka myτi
  214.   ¼ekejNaReakci();
  215. x Skryj();
  216. y Odhal();
  217. z ;ƒelem vzad
  218.    VlevoVbok(); VlevoVbok();
  219. B NastavBarvu¼arování   /*       B:(barva)!   0-15                    */
  220. C ¼aruj                 /*     C:(p²edm╪t)!   1-150                   */
  221. ╤ return BaltEmuluj     /*     ╤:("Volno")!   "Test"                  */
  222. L NaƒtiScénu            /*    L:("soubor")!   "c:\\pavel\\soubor.s00" */
  223. ¥ BaltEmuluj            /*      ¥:("Text")!   "Test"                  */
  224. N Náhodn╪¼aruj          /*     N:(p²edm╪t)!   1-150                   */
  225. P Popojdi               /*  P:(poƒet_polí)!   0-14                    */
  226. R RychlostBaltazara     /*    R:(rychlost)!   0-9                     */
  227. S UloºScénu             /*    S:("soubor")!   "c:\\pavel\\soubor.s00" */
  228. W ¼ekej                 /*  W:(milisekund)!   0-32000                 */
  229. X ¼arujNaPozici         /* X:(p²edm╪t,x,y)!   1-150, 1-15, 1-10       */
  230. -c1-Globals ---- (? lze pouºít jako náhrada pouze pro /,*,+) -----------------
  231. ?n PràchodnostP²edm╪tuP²edB() Je 0
  232. ?p PràchodnostP²edm╪tuP²edB() Je 1
  233. ?B Barva¼tverceP²edB()  /* Je, Není, <, >, <= ,>= */
  234. ?P P²edm╪tP²edB()       /* Je, Není, <, >, <= ,>= */
  235. ?S Sm╪rBaltazara()      /* Je, Není, <, >, <= ,>= */
  236. \b Barva¼tverceP²edB()??
  237. \p P²edm╪tP²edB()??
  238. \s Sm╪rBaltazara()??
  239. \C case
  240. #C ; n-krát                                     #C:(5)         5₧
  241.     __CYKLUS
  242. #A ;opakuj vzestupn╪ pro prom╪nnou od,do,krok   #A:(i,2,10,2)  i=2,4..10
  243.     OdDoKrok
  244. #D ;opakuj sestupn╪  pro prom╪nnou od,do,krok   #D:(i,10,2,2)  i=10,8..2
  245.     OdDolàDoKrok
  246. #M ;opakuj n-krát sestupn╪  pro prom╪nnou       #M:(i,8)  (8x) i=7,6..0
  247.     DolàDo0
  248. #N ;opakuj n-krát vzestupn╪ pro prom╪nnou       #N:(i,8)  (8x) i=0,1..7
  249.     Od0
  250. ===Globals ------------------------------------------------------------------
  251. /*-hf(*/
  252. /*-hf-*/
  253. void Tl1Klik( void )
  254. /*-hf-*/;
  255. void PreSk1Zm╪na( void )
  256. /*-hf-*/;
  257. void Vyp1Zm╪na( void )
  258. /*-hf-*/;
  259. void TextPole1Zm╪na( void )
  260. /*-hf-*/;
  261. void Okno1XKlik( void )
  262. /*-hf-*/;
  263. void ZniƒOkno( int ID )
  264. /*-hf-*/;
  265. void P²esuσOkno( int x,y,ID )
  266. /*-hf-*/;
  267. void Obnov( void )
  268. /*-hf-*/;
  269. void P²idejPoloºku( int ID,string text )
  270. /*-hf-*/;
  271. void MenuV∞b╪rP²idejPoloºku( int ID, string text )
  272. /*-hf-*/;
  273. int Spus£PopUpMenu( int x2,y2,ID )
  274. /*-hf-*/;
  275. void _KresliMenu( int ID,z )
  276. /*-hf-*/;
  277. int Spus£Menu( int ID )
  278. /*-hf-*/;
  279. int Menu( int x,y,okno,string text,void (*událost)(),void (*popup)() )
  280. /*-hf-*/;
  281. void _KresliV∞b╪r( int ID,z )
  282. /*-hf-*/;
  283. int Spus£V∞b╪r( int ID )
  284. /*-hf-*/;
  285. int V∞b╪r(int x,y,τí²ka,okno,string text,void (*událost)(),void (*popup)() )
  286. /*-hf-*/;
  287. void _KresliP²epínaƒ( int ID )
  288. /*-hf-*/;
  289. int P²epínaƒ( int x,y,char stav,skupina,int okno,string text,void (*událost)(),void (*popup)() )
  290. /*-hf-*/;
  291. void _KresliVypínaƒ( int ID )
  292. /*-hf-*/;
  293. int Vypínaƒ( int x,y,char stav,int okno,string text,void (*událost)(),void (*popup)() )
  294. /*-hf-*/;
  295. void _KresliTextovéPole( int ID )
  296. /*-hf-*/;
  297. string UpravTextovéPole( int ID )
  298. /*-hf-*/;
  299. int TextovéPole(int x,y,τí²ka,styl,okno,string text,void (*událost)(),void (*popup)() )
  300. /*-hf-*/;
  301. void _KresliText( int ID )
  302. /*-hf-*/;
  303. int Text( int  x,y,okno, string text,void (*událost)(),void (*popup)() )
  304. /*-hf-*/;
  305. void _KresliTlaƒítko( int ID,z )
  306. /*-hf-*/;
  307. int Tlaƒítko(int x,y,τí²ka,v∞τka,styl,okno,string text,void (*událost)(),void (*popup)() )
  308. /*-hf-*/;
  309. void _KresliOkno( int ID,z )
  310. /*-hf-*/;
  311. int Okno( int x,y,τí²ka,v∞τka,string text,void (*událost)(),void (*popup)() )
  312. /*-hf-*/;
  313. int Události( void )
  314. /*-hf-*/;
  315. void main( void )
  316. /*-hf)*/;
  317. ;-h---------------------------------------------------------------------------
  318. void Tl1Klik( void )
  319. -s--Tl1Klik                                                                     ■   4  -2 -28   3
  320. Tl1Klik
  321.   1!
  322. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  323. 1 int TlOkno,TlTlOk,TlText;
  324.   TlOkno=Okno(270,190,100,100,"Okno",NULL,NULL);
  325.   TlText=Text(46,46,TlOkno,Objekty[Vyb1].Text,NULL,NULL);
  326.   TlTlOk=Tlaƒítko(15,70,70,25,0,TlOkno,"Ok",NULL,NULL);
  327.   while(Události() != TlTlOk) {}
  328.   ZniƒOkno(TlOkno);
  329. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  330. =SP---------------------------------------------------------------------------
  331.  
  332. ;-h---------------------------------------------------------------------------
  333. void PreSk1Zm╪na( void )
  334. -s--PreSk1Zm╪na                                                                 ■   4  -2 -26   3
  335. PreSk1Zm╪na
  336.     1!
  337. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  338. 1 if(Objekty[Pre1].Spec==1) Objekty[Tl1].Styl=0;
  339.   else if(Objekty[Pre2].Spec==1) Objekty[Tl1].Styl=1;
  340.   Obnovit=1;
  341. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  342. =SP---------------------------------------------------------------------------
  343.  
  344. ;-h---------------------------------------------------------------------------
  345. void Vyp1Zm╪na( void )
  346. -s--Vyp1Zm╪na                                                                   ■   4  -2 -27   3
  347. Vyp1Zm╪na
  348.    1!
  349. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  350. 1 Objekty[Tl1].Viditeln∞=Objekty[Vyp1].Spec;
  351.   Obnovit=1;
  352. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  353. =SP---------------------------------------------------------------------------
  354.  
  355. ;-h---------------------------------------------------------------------------
  356. void TextPole1Zm╪na( void )
  357. -s--TextPole1Zm╪na                                                              ■   4  -2 -24   3
  358. TextPole1Zm╪na
  359.      1!
  360. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  361. 1 Objekty[Tl1].Text=Objekty[TextPole1].Text;
  362.   Obnovit=1;
  363. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  364. =SP---------------------------------------------------------------------------
  365.  
  366. ;-h---------------------------------------------------------------------------
  367. void Okno1XKlik( void )
  368. -s--Okno1XKlik                                                                  ■   4  -2 -26   3
  369. Okno1XKlik
  370.    1!
  371. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  372. 1 Konec=1;
  373. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  374. =SP---------------------------------------------------------------------------
  375.  
  376. ;-h---------------------------------------------------------------------------
  377. void ZniƒOkno( int ID )
  378. -s--ZniƒOkno                                                                    ■   4  -2 -27   3
  379. ZniƒOkno
  380.   1!
  381. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  382. 1 int tl=StartTlaƒítko,tlvoknu=0,
  383.       text=StartText,textvoknu=0,
  384.       textpole=StartTextovéPole,textpolevoknu=0,
  385.       vyp=StartVypínaƒ,vypvoknu=0,
  386.       pre=StartP²epínaƒ,prevoknu=0,
  387.       vyb=StartV∞b╪r,vybvoknu=0,
  388.       menu=StartMenu,menuvoknu=0;
  389.  
  390.    while(tl!=IDTlaƒítko) {
  391.      if(Objekty[tl].Okno==ID) ++tlvoknu;
  392.      ++tl;
  393.    }
  394.    IDTlaƒítko-=tlvoknu;
  395.  
  396.    while(textpole!=IDTextovéPole) {
  397.    if(Objekty[textpole].Okno==ID) ++textpolevoknu;
  398.      ++textpole;
  399.    }
  400.    IDTextovéPole-=textpolevoknu;
  401.  
  402.    while(text!=IDText) {
  403.      if(Objekty[text].Okno==ID) ++textvoknu;
  404.      ++text;
  405.    }
  406.    IDText-=textvoknu;
  407.  
  408.    while(vyp!=IDVypínaƒ) {
  409.      if(Objekty[vyp].Okno==ID) ++vypvoknu;
  410.      ++vyp;
  411.    }
  412.    IDVypínaƒ-=vypvoknu;
  413.  
  414.   while(pre!=IDP²epínaƒ) {
  415.      if(Objekty[pre].Okno==ID) ++prevoknu;
  416.      ++pre;
  417.    }
  418.    IDP²epínaƒ-=prevoknu;
  419.  
  420.    while(vyb!=IDV∞b╪r) {
  421.      if(Objekty[vyb].Okno==ID) ++vybvoknu;
  422.      ++vyb;
  423.    }
  424.    IDV∞b╪r-=vybvoknu;
  425.  
  426.    while(menu!=IDMenu) {
  427.      if(Objekty[menu].Okno==ID) ++menuvoknu;
  428.      ++menu;
  429.    }
  430.    IDMenu-=menuvoknu;
  431.  
  432.    --IDOkno;
  433.    Obnovit=1;
  434. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  435. =SP---------------------------------------------------------------------------
  436.  
  437. ;-h---------------------------------------------------------------------------
  438. void P²esuσOkno( int x,y,ID )
  439. -s--P²esuσOkno                                                                  ■   4  -2 -26   3
  440. P²esuσOkno
  441.    1!
  442. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  443. 1 int tl=StartTlaƒítko,
  444.       text=StartText,
  445.       textpole=StartTextovéPole,
  446.       vyp=StartVypínaƒ,
  447.       pre=StartP²epínaƒ,
  448.       vyb=StartV∞b╪r,
  449.       menu=StartMenu;
  450.  
  451.   while(tl!=IDTlaƒítko) {
  452.     if(Objekty[tl].Okno==ID) {
  453.       Objekty[tl].X=x+(Objekty[tl].X-Objekty[ID].X);
  454.       Objekty[tl].Y=y+(Objekty[tl].Y-Objekty[ID].Y);
  455.       }
  456.     ++tl;
  457.   }
  458.  
  459.   while(text!=IDText) {
  460.     if(Objekty[text].Okno==ID) {
  461.       Objekty[text].X=x+(Objekty[text].X-Objekty[ID].X);
  462.       Objekty[text].Y=y+(Objekty[text].Y-Objekty[ID].Y);
  463.       }
  464.     ++text;
  465.   }
  466.  
  467.   while(textpole!=IDTextovéPole) {
  468.     if(Objekty[textpole].Okno==ID) {
  469.       Objekty[textpole].X=x+(Objekty[textpole].X-Objekty[ID].X);
  470.       Objekty[textpole].Y=y+(Objekty[textpole].Y-Objekty[ID].Y);
  471.       }
  472.     ++textpole;
  473.   }
  474.  
  475.   while(vyp!=IDVypínaƒ) {
  476.     if(Objekty[vyp].Okno==ID) {
  477.       Objekty[vyp].X=x+(Objekty[vyp].X-Objekty[ID].X);
  478.       Objekty[vyp].Y=y+(Objekty[vyp].Y-Objekty[ID].Y);
  479.       }
  480.     ++vyp;
  481.   }
  482.  
  483.   while(pre!=IDP²epínaƒ) {
  484.     if(Objekty[pre].Okno==ID) {
  485.       Objekty[pre].X=x+(Objekty[pre].X-Objekty[ID].X);
  486.       Objekty[pre].Y=y+(Objekty[pre].Y-Objekty[ID].Y);
  487.       }
  488.     ++pre;
  489.   }
  490.  
  491.   while(vyb!=IDV∞b╪r) {
  492.     if(Objekty[vyb].Okno==ID) {
  493.       Objekty[vyb].X=x+(Objekty[vyb].X-Objekty[ID].X);
  494.       Objekty[vyb].Y=y+(Objekty[vyb].Y-Objekty[ID].Y);
  495.       }
  496.     ++vyb;
  497.   }
  498.  
  499.   while(menu!=IDMenu) {
  500.     if(Objekty[menu].Okno==ID) {
  501.       Objekty[menu].X=x+(Objekty[menu].X-Objekty[ID].X);
  502.       Objekty[menu].Y=y+(Objekty[menu].Y-Objekty[ID].Y);
  503.       }
  504.     ++menu;
  505.   }
  506.  
  507.   Objekty[ID].X=x;
  508.   Objekty[ID].Y=y;
  509.   Obnovit=1;
  510. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  511. =SP---------------------------------------------------------------------------
  512.  
  513. ;-h---------------------------------------------------------------------------
  514. void Obnov( void )
  515. -s--Obnov                                                                       ■   4  -2 -29   3
  516. Obnov
  517.  1!
  518. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  519. 1 int okno=0,tl,text,textpole,vyp,pre,vyb,menu;
  520.   MyτSchovejKurzor();
  521.   GrNastavBarvy(0x66);
  522.   GrSmaºOkno();
  523.   MyτZobrazKurzor();
  524.   while(okno!=IDOkno) {
  525.     _KresliOkno(okno,0);
  526.     tl=StartTlaƒítko;
  527.     while(tl!=IDTlaƒítko) {
  528.       if(Objekty[tl].Okno==okno)
  529.         _KresliTlaƒítko(tl,0);
  530.       ++tl;
  531.     }
  532.     text=StartText;
  533.     while(text!=IDText) {
  534.       if(Objekty[text].Okno==okno)
  535.         _KresliText(text);
  536.       ++text;
  537.     }
  538.     textpole=StartTextovéPole;
  539.     while(textpole!=IDTextovéPole) {
  540.       if(Objekty[textpole].Okno==okno)
  541.         _KresliTextovéPole(textpole);
  542.       ++textpole;
  543.     }
  544.     vyp=StartVypínaƒ;
  545.     while(vyp!=IDVypínaƒ) {
  546.       if(Objekty[vyp].Okno==okno)
  547.         _KresliVypínaƒ(vyp);
  548.       ++vyp;
  549.     }
  550.     pre=StartP²epínaƒ;
  551.     while(pre!=IDP²epínaƒ) {
  552.       if(Objekty[pre].Okno==okno)
  553.         _KresliP²epínaƒ(pre);
  554.       ++pre;
  555.     }
  556.     vyb=StartV∞b╪r;
  557.     while(vyb!=IDV∞b╪r) {
  558.       if(Objekty[vyb].Okno==okno)
  559.         _KresliV∞b╪r(vyb,0);
  560.       ++vyb;
  561.     }
  562.     menu=StartMenu;
  563.     while(menu!=IDMenu) {
  564.       if(Objekty[menu].Okno==okno)
  565.         _KresliMenu(menu,0);
  566.       ++menu;
  567.     }
  568.     ++okno;
  569.   }
  570. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  571. =SP---------------------------------------------------------------------------
  572.  
  573. ;-h---------------------------------------------------------------------------
  574. void P²idejPoloºku( int ID,string text )
  575. -s--P²idejPoloºku                                                               ■   4  -2 -25   3
  576. P²idejPoloºku
  577.      1!
  578. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  579. 1
  580.   Seznamy[ID].Text[Seznamy[ID].Poƒet]=text;
  581.   ++Seznamy[ID].Poƒet;
  582. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  583. =SP---------------------------------------------------------------------------
  584.  
  585. ;-h---------------------------------------------------------------------------
  586. void MenuV∞b╪rP²idejPoloºku( int ID, string text )
  587. -s--MenuV∞b╪rP²idejPoloºku                                                      ■   4  -2 -20   3
  588. MenuV∞b╪rP²idejPoloºku
  589.          1!
  590. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  591. 1 MenuVybSeznamy[ID].Text[MenuVybSeznamy[ID].Poƒet]=text;
  592.   ++MenuVybSeznamy[ID].Poƒet;
  593. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  594. =SP---------------------------------------------------------------------------
  595.  
  596. ;-h---------------------------------------------------------------------------
  597. int Spus£PopUpMenu( int x2,y2,ID )
  598. -s--Spus£PopUpMenu                                                              ■   4  -2 -24   3
  599. Spus£PopUpMenu
  600.      1!
  601. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  602. 1 int a=0,x,y,y1,sirka;
  603.   if(Seznamy[ID].µí²ka==0) sirka=100;
  604.   else sirka=Seznamy[ID].µí²ka;
  605.   MyτSchovejKurzor();
  606.   GrNastavBarvy(0x7f);
  607.   GrKresliVypln╪n∞Obdélník(x2,y2,x2+sirka,y2+Seznamy[ID].Poƒet*12+4);
  608.   GrKresliObdélník(x2,y2,x2+sirka,y2+Seznamy[ID].Poƒet*12+4);
  609.   GrNastavBarvy(0x88);
  610.   GrKresliLinku(x2+sirka,y2+Seznamy[ID].Poƒet*12+4,x2+sirka,y2);
  611.   GrKresliLinku(x2+sirka,y2+Seznamy[ID].Poƒet*12+4,x2,y2+Seznamy[ID].Poƒet*12+4);
  612.   GrNastavBarvy(0x00);
  613.   while(a!=Seznamy[ID].Poƒet) {
  614.     GrNastavPozici(x2+2,y2+2+a*12);
  615.     GrPiτⁿet╪zec(Seznamy[ID].Text[a]);
  616.     ++a;
  617.   }
  618.   MyτZobrazKurzor();
  619.   MyτNastavPozici(x2+3,y2+3);
  620.   MyτNastavRozsah(x2+3,y2+3,x2+97,y2+Seznamy[ID].Poƒet*12+1);
  621.   MyτVyprázdniFrontuUdálostí();
  622.   while(gMyτUdálost.Typ!=MyτUdálostPravéTlNahoru){
  623.     Myτ¼tiUdálost(gMyτUdálost);
  624.     y=(gMyτUdálost.Y-y2+2)/12;
  625.     if(y!=y1) {
  626.       MyτSchovejKurzor();
  627.       GrNastavBarvy(0x00);
  628.       GrNastavPozici(x2+2,y2+2+y1*12);
  629.       GrPiτⁿet╪zec(Seznamy[ID].Text[y1]);
  630.       GrNastavBarvy(0x04);
  631.       GrNastavPozici(x2+2,y2+2+y*12);
  632.       GrPiτⁿet╪zec(Seznamy[ID].Text[y]);
  633.       MyτZobrazKurzor();
  634.       Myτ¼tiUdálost(gMyτUdálost);
  635.       y1=(gMyτUdálost.Y-y2+2)/12;
  636.     }
  637.   }
  638.   Seznamy[ID].V∞b╪r=y1;
  639.   MyτNastavRozsah(0,0,GrMaxX(),GrMaxY());
  640.   Obnovit=1;
  641.   return y;
  642. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  643. =SP---------------------------------------------------------------------------
  644.  
  645. ;-h---------------------------------------------------------------------------
  646. void _KresliMenu( int ID,z )
  647. -s--_KresliMenu                                                                 ■   3  -2 -27   3
  648. KresliMenu
  649.     /1
  650.     │
  651.  123!
  652. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  653. 1 MyτSchovejKurzor();
  654.  
  655.   ; vytvo²ení a p²i²azení prom╪nn∞ch
  656.   int x1,x2,y1,y2;
  657.   string text;
  658.   x1=Objekty[ID].X;
  659.   x2=Objekty[ID].X+Objekty[ID].µí²ka;
  660.   y1=Objekty[ID].Y;
  661.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  662.   text=Objekty[ID].Text;
  663.  
  664. 2 ;kreslení menu
  665.   if(z==0) {
  666.     GrNastavBarvy(0x77);
  667.     GrKresliVypln╪n∞Obdélník(x1,y1,x2,y2);
  668.     GrNastavBarvy(0x00);
  669.     GrNastavPozici(x1+2,y1+2);
  670.     GrPiτⁿet╪zec(text);
  671.   }
  672.   else if (z==1) {
  673.     GrNastavBarvy(0x77);
  674.     GrKresliVypln╪n∞Obdélník(x1,y1,x2,y2);
  675.     GrNastavBarvy(0x88);
  676.     GrKresliLinku(x1,y1,x1,y2);
  677.     GrKresliLinku(x1,y1,x2,y1);
  678.     GrNastavBarvy(0xff);
  679.     GrKresliLinku(x2,y2,x2,y1-1);
  680.     GrKresliLinku(x2,y2,x1-1,y2);
  681.     GrNastavBarvy(0x00);
  682.     GrNastavPozici(x1+3,y1+3);
  683.     GrPiτⁿet╪zec(text);
  684.   }
  685.  
  686. 3 MyτZobrazKurzor();
  687. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  688. /1 ; Objekt je viditeln∞
  689.    Objekty[ID].Viditeln∞==1
  690. =SP---------------------------------------------------------------------------
  691.  
  692. ;-h---------------------------------------------------------------------------
  693. int Spus£Menu( int ID )
  694. -s--Spus£Menu                                                                   ■   4  -2 -27   3
  695. Spus£Menu
  696.    1!
  697. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  698. 1 int a=0,x,y,x1,y1,sirka;
  699.   if(MenuVybSeznamy[ID-StartP²epínaƒ].µí²ka==0) sirka=100;
  700.   else sirka=MenuVybSeznamy[ID].µí²ka;
  701.   MyτSchovejKurzor();
  702.   GrNastavBarvy(0x7f);
  703.   GrKresliVypln╪n∞Obdélník(Objekty[ID].X,
  704.                            Objekty[ID].Y+Objekty[ID].V∞τka,
  705.                            Objekty[ID].X+sirka,
  706.                            Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
  707.   GrKresliObdélník(Objekty[ID].X,
  708.                    Objekty[ID].Y+Objekty[ID].V∞τka,
  709.                    Objekty[ID].X+sirka,
  710.                    Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
  711.   GrNastavBarvy(0x88);
  712.   GrKresliLinku(Objekty[ID].X+sirka,
  713.                 Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4,
  714.                 Objekty[ID].X+sirka,
  715.                 Objekty[ID].Y+Objekty[ID].V∞τka);
  716.   GrKresliLinku(Objekty[ID].X+sirka,
  717.                 Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4,
  718.                 Objekty[ID].X,
  719.                 Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
  720.   GrNastavBarvy(0x00);
  721.   while(a!=MenuVybSeznamy[ID].Poƒet) {
  722.     GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+a*12);
  723.     GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[a]);
  724.     ++a;
  725.   }
  726.   MyτZobrazKurzor();
  727.   MyτNastavPozici(Objekty[ID].X+3,Objekty[ID].Y+Objekty[ID].V∞τka+3);
  728.   MyτNastavRozsah(Objekty[ID].X+3,
  729.                   Objekty[ID].Y+Objekty[ID].V∞τka+3,
  730.                   Objekty[ID].X+sirka-3,
  731.                   Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+1);
  732.   MyτVyprázdniFrontuUdálostí();
  733.   while(gMyτUdálost.Typ!=MyτUdálostLevéTlDolà){
  734.     Myτ¼tiUdálost(gMyτUdálost);
  735.     y=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
  736.     if(y!=y1) {
  737.       MyτSchovejKurzor();
  738.       GrNastavBarvy(0x00);
  739.       GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y1*12);
  740.       GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y1]);
  741.       GrNastavBarvy(0x04);
  742.       GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y*12);
  743.       GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y]);
  744.       MyτZobrazKurzor();
  745.       Myτ¼tiUdálost(gMyτUdálost);
  746.       y1=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
  747.     }
  748.   }
  749.   MenuVybSeznamy[ID].V∞b╪r=y1;
  750.   MyτNastavRozsah(0,0,GrMaxX(),GrMaxY());
  751.   Obnovit=1;
  752.   return y;
  753. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  754. =SP---------------------------------------------------------------------------
  755.  
  756. ;-h---------------------------------------------------------------------------
  757. int Menu( int x,y,okno,string text,void (*událost)(),void (*popup)() )
  758. -s--Menu                                                                        ■   4  -2 -29   3
  759. Menu
  760. 1!
  761. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  762. 1 ;registrace a kreslení menu
  763.   Objekty[IDMenu].X=x+Objekty[okno].X;
  764.   Objekty[IDMenu].Y=y+Objekty[okno].Y;
  765.   Objekty[IDMenu].µí²ka=StrDélka(text)*8+4;
  766.   Objekty[IDMenu].V∞τka=14;
  767.   Objekty[IDMenu].Okno=okno;
  768.   Objekty[IDMenu].ID=IDMenu;
  769.   Objekty[IDMenu].Text=text;
  770.   Objekty[IDMenu].Druh=7;
  771.   Objekty[IDMenu].Styl=0;
  772.   Objekty[IDMenu].Viditeln∞=1;
  773.   if(událost==NULL) Objekty[IDMenu].P²i²azenaUdálost=0;
  774.   else {
  775.     Objekty[IDMenu].Zm╪na=událost;
  776.     Objekty[IDMenu].P²i²azenaUdálost=1;
  777.   }
  778.   Objekty[IDMenu].PopUp=popup;
  779.   Seznamy[IDMenu].Poƒet=0;
  780.   MenuVybSeznamy[IDMenu].Poƒet=0;
  781.   _KresliMenu(IDMenu,0);
  782.   ++IDMenu;
  783.   return IDMenu-1;
  784. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  785. =SP---------------------------------------------------------------------------
  786.  
  787. ;-h---------------------------------------------------------------------------
  788. void _KresliV∞b╪r( int ID,z )
  789. -s--_KresliV∞b╪r                                                                ■   6  -2 -25   3
  790.  KresliV∞b╪r
  791.       /1
  792.       │
  793. 123456!
  794. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  795. 1 MyτSchovejKurzor();
  796.  
  797.   ; vytvo²ení a p²i²azení prom╪nn∞ch
  798.   int x1,x2,y1,y2;
  799.   string text;
  800.   x1=Objekty[ID].X;
  801.   x2=Objekty[ID].X+Objekty[ID].µí²ka;
  802.   y1=Objekty[ID].Y;
  803.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  804.   text=Objekty[ID].Text;
  805.  
  806. 2 ; kreslení v∞b╪ru
  807.   GrNastavBarvy(0x88);
  808.   GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
  809.   GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
  810.   GrNastavBarvy(0x00);
  811.   GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  812.   GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  813.   GrNastavBarvy(0xff);
  814.   GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  815.   GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  816.   GrNastavBarvy(0x77);
  817.   GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
  818.   GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
  819. 3 ; mazání obsahu
  820.   GrNastavBarvy(0xFF);
  821.   GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
  822.  
  823. 4 ; vypsání textu
  824.   GrNastavPozici(x1+3,y1+3);
  825.   GrNastavBarvy(0x00);
  826.   GrPiτⁿet╪zec(text);
  827.  
  828. 5 ; kreslení tlaƒítka
  829.   x1=x2-13;
  830.   y1=y1+2;
  831.   y2=y2-2;
  832.   x2=x2-2;
  833.   GrNastavBarvy(0x70);
  834.   GrNastavText(GrTextSPozadím);
  835.   GrNastavPozici(x1+1,y1+1);
  836.   GrPiτZnak(25);
  837.   GrNastavText(GrTextBezPozadí);
  838.   if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x88);
  839.   GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
  840.   GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
  841.   if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x00);
  842.   GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  843.   GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  844.   if (z==0) GrNastavBarvy(0x88); else GrNastavBarvy(0xff);
  845.   GrKresliLinku(x1+2,y2-2,x2-1,y2-2);
  846.   GrKresliLinku(x2-2,y1+2,x2-2,y2-1);
  847.   if (z==0) GrNastavBarvy(0x00); else GrNastavBarvy(0xff);
  848.   GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  849.   GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  850.  
  851.  
  852.  
  853. 6 MyτZobrazKurzor();
  854. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  855. /1 ; Objekt je viditeln∞
  856.    Objekty[ID].Viditeln∞==1
  857. =SP---------------------------------------------------------------------------
  858.  
  859. ;-h---------------------------------------------------------------------------
  860. int Spus£V∞b╪r( int ID )
  861. -s--Spus£V∞b╪r                                                                  ■   4  -2 -26   3
  862. Spus£V∞b╪r
  863.    1!
  864. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  865. 1 int a=0,x,y,x1,y1,sirka;
  866.   if(MenuVybSeznamy[ID-StartP²epínaƒ].µí²ka==0) sirka=Objekty[ID].µí²ka;
  867.   else sirka=MenuVybSeznamy[ID].µí²ka;
  868.   MyτSchovejKurzor();
  869.   GrNastavBarvy(0xf0);
  870.   GrKresliVypln╪n∞Obdélník(Objekty[ID].X,
  871.                            Objekty[ID].Y+Objekty[ID].V∞τka,
  872.                            Objekty[ID].X+sirka,
  873.                            Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
  874.   GrKresliObdélník(Objekty[ID].X,
  875.                    Objekty[ID].Y+Objekty[ID].V∞τka,
  876.                    Objekty[ID].X+sirka,
  877.                    Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+4);
  878.   while(a!=MenuVybSeznamy[ID].Poƒet) {
  879.     GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+a*12);
  880.     GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[a]);
  881.     ++a;
  882.   }
  883.   MyτZobrazKurzor();
  884.   MyτNastavPozici(Objekty[ID].X+3,Objekty[ID].Y+Objekty[ID].V∞τka+3);
  885.   MyτNastavRozsah(Objekty[ID].X+3,
  886.                   Objekty[ID].Y+Objekty[ID].V∞τka+3,
  887.                   Objekty[ID].X+sirka-3,
  888.                   Objekty[ID].Y+Objekty[ID].V∞τka+MenuVybSeznamy[ID].Poƒet*12+1);
  889.   MyτVyprázdniFrontuUdálostí();
  890.   while(gMyτUdálost.Typ!=MyτUdálostLevéTlDolà){
  891.     Myτ¼tiUdálost(gMyτUdálost);
  892.     y=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
  893.     if(y!=y1) {
  894.       MyτSchovejKurzor();
  895.       GrNastavBarvy(0x00);
  896.       GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y1*12);
  897.       GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y1]);
  898.       GrNastavBarvy(0x04);
  899.       GrNastavPozici(Objekty[ID].X+2,Objekty[ID].Y+Objekty[ID].V∞τka+2+y*12);
  900.       GrPiτⁿet╪zec(MenuVybSeznamy[ID].Text[y]);
  901.       MyτZobrazKurzor();
  902.       Myτ¼tiUdálost(gMyτUdálost);
  903.       y1=(gMyτUdálost.Y-(Objekty[ID].Y+Objekty[ID].V∞τka+2))/12;
  904.     }
  905.   }
  906.   Objekty[ID].Text=MenuVybSeznamy[ID].Text[y1];
  907.   MenuVybSeznamy[ID].V∞b╪r=y1;
  908.   MyτNastavRozsah(0,0,GrMaxX(),GrMaxY());
  909.   Obnovit=1;
  910.   return y;
  911. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  912. =SP---------------------------------------------------------------------------
  913.  
  914. ;-h---------------------------------------------------------------------------
  915. int V∞b╪r(int x,y,τí²ka,okno,string text,void (*událost)(),void (*popup)() )
  916. -s--V∞b╪r                                                                       ■   4  -2 -29   3
  917. V∞b╪r
  918.  1!
  919. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  920. 1 ;registrace a kreslení v∞b╪ru
  921.   Objekty[IDV∞b╪r].X=x+Objekty[okno].X;
  922.   Objekty[IDV∞b╪r].Y=y+Objekty[okno].Y;
  923.   Objekty[IDV∞b╪r].µí²ka=τí²ka;
  924.   Objekty[IDV∞b╪r].V∞τka=16;
  925.   Objekty[IDV∞b╪r].Okno=okno;
  926.   Objekty[IDV∞b╪r].ID=IDV∞b╪r;
  927.   Objekty[IDV∞b╪r].Text=text;
  928.   Objekty[IDV∞b╪r].Druh=6;
  929.   Objekty[IDV∞b╪r].Styl=0;
  930.   Objekty[IDV∞b╪r].Viditeln∞=1;
  931.   if(událost==NULL) Objekty[IDV∞b╪r].P²i²azenaUdálost=0;
  932.   else {
  933.     Objekty[IDV∞b╪r].Zm╪na=událost;
  934.     Objekty[IDV∞b╪r].P²i²azenaUdálost=1;
  935.   }
  936.   Objekty[IDV∞b╪r].PopUp=popup;
  937.   Seznamy[IDV∞b╪r].Poƒet=0;
  938.   MenuVybSeznamy[IDV∞b╪r].Poƒet=0;
  939.   _KresliV∞b╪r(IDV∞b╪r,0);
  940.   ++IDV∞b╪r;
  941.   return IDV∞b╪r-1;
  942. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  943. =SP---------------------------------------------------------------------------
  944.  
  945. ;-h---------------------------------------------------------------------------
  946. void _KresliP²epínaƒ( int ID )
  947. -s--_KresliP²epínaƒ                                                             ■   3  -2 -25   3
  948. KresliP²epínaƒ
  949.       /1
  950.       │
  951. 123456!
  952. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  953. 1 MyτSchovejKurzor();
  954.  
  955.   ; vytvo²ení a p²i²azení prom╪nn∞ch
  956.   int x1,x2,y1,y2;
  957.   string text;
  958.   x1=Objekty[ID].X;
  959.   x2=Objekty[ID].X+14;
  960.   y1=Objekty[ID].Y;
  961.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  962.   text=Objekty[ID].Text;
  963.  
  964. 2 ; kreslení vypínaƒe
  965.   GrNastavBarvy(0x88);
  966.   GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
  967.   GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
  968.   GrNastavBarvy(0x00);
  969.   GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  970.   GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  971.   GrNastavBarvy(0xff);
  972.   GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  973.   GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  974.   GrNastavBarvy(0x77);
  975.   GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
  976.   GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
  977. 3 ; mazání obsahu
  978.   GrNastavBarvy(0xFF);
  979.   GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
  980.  
  981. 4 ; vypsání textu
  982.   GrNastavPozici(x1+17,y1+2);
  983.   GrNastavBarvy(0x00);
  984.   GrPiτⁿet╪zec(text);
  985.  
  986. 5 ; kreslení ƒtvereƒku
  987.   if(Objekty[ID].Spec==1) {
  988.     GrNastavBarvy(0x00);
  989.     GrKresliVypln╪n∞Obdélník(x1+5,y1+5,x1+9,y1+9);
  990.   }
  991.  
  992. 6 MyτZobrazKurzor();
  993. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  994. /1 ; Objekt je viditeln∞
  995.    Objekty[ID].Viditeln∞==1
  996.  
  997. =SP---------------------------------------------------------------------------
  998.  
  999. ;-h---------------------------------------------------------------------------
  1000. int P²epínaƒ( int x,y,char stav,skupina,int okno,string text,void (*událost)(),void (*popup)() )
  1001. -s--P²epínaƒ                                                                    ■   4  -2 -27   3
  1002. P²epínaƒ
  1003.   1!
  1004. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1005. 1 ;registrace a kreslení p²epínaƒe
  1006.   Objekty[IDP²epínaƒ].X=x+Objekty[okno].X;
  1007.   Objekty[IDP²epínaƒ].Y=y+Objekty[okno].Y;
  1008.   Objekty[IDP²epínaƒ].µí²ka=17+StrDélka(text)*8;
  1009.   Objekty[IDP²epínaƒ].V∞τka=14;
  1010.   Objekty[IDP²epínaƒ].Okno=okno;
  1011.   Objekty[IDP²epínaƒ].ID=IDP²epínaƒ;
  1012.   Objekty[IDP²epínaƒ].Text=text;
  1013.   Objekty[IDP²epínaƒ].Druh=5;
  1014.   Objekty[IDP²epínaƒ].Styl=0;
  1015.   Objekty[IDP²epínaƒ].Viditeln∞=1;
  1016.   Objekty[IDP²epínaƒ].Spec=stav;
  1017.   Objekty[IDP²epínaƒ].Skupina=skupina;
  1018.   if(událost==NULL) Objekty[IDP²epínaƒ].P²i²azenaUdálost=0;
  1019.   else {
  1020.     Objekty[IDP²epínaƒ].Zm╪na=událost;
  1021.     Objekty[IDP²epínaƒ].P²i²azenaUdálost=1;
  1022.   }
  1023.   Seznamy[IDP²epínaƒ].Poƒet=0;
  1024.   Objekty[IDP²epínaƒ].PopUp=popup;
  1025.   _KresliP²epínaƒ(IDP²epínaƒ);
  1026.   ++IDP²epínaƒ;
  1027.   return IDP²epínaƒ-1;
  1028. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1029. =SP---------------------------------------------------------------------------
  1030.  
  1031. ;-h---------------------------------------------------------------------------
  1032. void _KresliVypínaƒ( int ID )
  1033. -s--_KresliVypínaƒ                                                              ■   3  -2 -24   3
  1034. KresliVypínaƒ
  1035.       /1
  1036.       │
  1037. 123456!
  1038. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1039. 1 MyτSchovejKurzor();
  1040.  
  1041.   ; vytvo²ení a p²i²azení prom╪nn∞ch
  1042.   int x1,x2,y1,y2;
  1043.   string text;
  1044.   x1=Objekty[ID].X;
  1045.   x2=Objekty[ID].X+14;
  1046.   y1=Objekty[ID].Y;
  1047.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  1048.   text=Objekty[ID].Text;
  1049.  
  1050. 2 ; kreslení vypínaƒe
  1051.   GrNastavBarvy(0x88);
  1052.   GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
  1053.   GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
  1054.   GrNastavBarvy(0x00);
  1055.   GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  1056.   GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  1057.   GrNastavBarvy(0xff);
  1058.   GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  1059.   GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  1060.   GrNastavBarvy(0x77);
  1061.   GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
  1062.   GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
  1063. 3 ; mazání obsahu
  1064.   GrNastavBarvy(0xFF);
  1065.   GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
  1066.  
  1067. 4 ; vypsání textu
  1068.   GrNastavPozici(x1+17,y1+2);
  1069.   GrNastavBarvy(0x00);
  1070.   GrPiτⁿet╪zec(text);
  1071.  
  1072. 5 ; kreslení k²íºku
  1073.   if(Objekty[ID].Spec==1) {
  1074.     GrNastavBarvy(0x00);
  1075.     GrKresliLinku(x1+4,y1+4,x1+10,y1+10);
  1076.     GrKresliLinku(x1+5,y1+4,x1+10,y1+9);
  1077.     GrKresliLinku(x1+4,y1+5,x1+9,y1+10);
  1078.     GrKresliLinku(x1+10,y1+4,x1+4,y1+10);
  1079.     GrKresliLinku(x1+10,y1+5,x1+5,y1+10);
  1080.     GrKresliLinku(x1+9,y1+4,x1+4,y1+9);
  1081.   }
  1082.  
  1083. 6 MyτZobrazKurzor();
  1084. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1085. /1 ; Objekt je viditeln∞
  1086.    Objekty[ID].Viditeln∞==1
  1087. =SP---------------------------------------------------------------------------
  1088.  
  1089. ;-h---------------------------------------------------------------------------
  1090. int Vypínaƒ( int x,y,char stav,int okno,string text,void (*událost)(),void (*popup)() )
  1091. -s--Vypínaƒ                                                                     ■   4  -2 -28   3
  1092. Vypínaƒ
  1093.   1!
  1094. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1095. 1 ;registrace a kreslení vypínaƒe
  1096.   Objekty[IDVypínaƒ].X=x+Objekty[okno].X;
  1097.   Objekty[IDVypínaƒ].Y=y+Objekty[okno].Y;
  1098.   Objekty[IDVypínaƒ].µí²ka=17+StrDélka(text)*8;
  1099.   Objekty[IDVypínaƒ].V∞τka=14;
  1100.   Objekty[IDVypínaƒ].Okno=okno;
  1101.   Objekty[IDVypínaƒ].ID=IDVypínaƒ;
  1102.   Objekty[IDVypínaƒ].Text=text;
  1103.   Objekty[IDVypínaƒ].Druh=4;
  1104.   Objekty[IDVypínaƒ].Styl=0;
  1105.   Objekty[IDVypínaƒ].Viditeln∞=1;
  1106.   Objekty[IDVypínaƒ].Spec=stav;
  1107.   if(událost==NULL) Objekty[IDVypínaƒ].P²i²azenaUdálost=0;
  1108.   else {
  1109.     Objekty[IDVypínaƒ].Zm╪na=událost;
  1110.     Objekty[IDVypínaƒ].P²i²azenaUdálost=1;
  1111.   }
  1112.   Seznamy[IDVypínaƒ].Poƒet=0;
  1113.   Objekty[IDVypínaƒ].PopUp=popup;
  1114.   _KresliVypínaƒ(IDVypínaƒ);
  1115.   ++IDVypínaƒ;
  1116.   return IDVypínaƒ-1;
  1117. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1118. =SP---------------------------------------------------------------------------
  1119.  
  1120. ;-h---------------------------------------------------------------------------
  1121. void _KresliTextovéPole( int ID )
  1122. -s--_KresliTextovéPole                                                          ■   6  -2 -23   3
  1123. KresliTextovéPole
  1124.         /1
  1125.         │
  1126.    12345!
  1127. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1128. 1 MyτSchovejKurzor();
  1129.  
  1130.   ; vytvo²ení a p²i²azení prom╪nn∞ch
  1131.   int x1,x2,y1,y2;
  1132.   string text;
  1133.   x1=Objekty[ID].X;
  1134.   x2=Objekty[ID].X+Objekty[ID].µí²ka;
  1135.   y1=Objekty[ID].Y;
  1136.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  1137.   text=Objekty[ID].Text;
  1138.  
  1139. 2 ; kreslení textového pole
  1140.   GrNastavBarvy(0x88);
  1141.   GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
  1142.   GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
  1143.   GrNastavBarvy(0x00);
  1144.   GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  1145.   GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  1146.   GrNastavBarvy(0xff);
  1147.   GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  1148.   GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  1149.   GrNastavBarvy(0x77);
  1150.   GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
  1151.   GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
  1152. 3 ; mazání obsahu
  1153.   GrNastavBarvy(0xFF);
  1154.   GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
  1155.  
  1156. 4 ; vypsání textu
  1157.   GrNastavPozici(x1+3,y1+3);
  1158.   GrNastavBarvy(0x00);
  1159.   GrPiτⁿet╪zec(text);
  1160.  
  1161. 5 MyτZobrazKurzor();
  1162. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1163. /1 ; Objekt je viditeln∞
  1164.    Objekty[ID].Viditeln∞==1
  1165. =SP---------------------------------------------------------------------------
  1166.  
  1167. ;-h---------------------------------------------------------------------------
  1168. string UpravTextovéPole( int ID )
  1169. -s--UpravTextovéPole                                                            ■   4  -2 -23   3
  1170. UpravTextovéPole
  1171.       1!
  1172. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1173. 1 int chyba=-1;
  1174.   do {
  1175.     GrNastavPozici(Objekty[ID].X+3,Objekty[ID].Y+3);
  1176.     Gr¼tiSⁿet╪zec(0,Objekty[ID].Text,(Objekty[ID].µí²ka-6)/8,1,0xf0);
  1177.     if (Objekty[ID].Styl>=1) {
  1178.       string zprava;
  1179.       if (Objekty[ID].Styl==1) {
  1180.         StrNaL¼íslo(Objekty[ID].Text,&chyba);
  1181.         zprava="Zadejte prosím celé ƒíslo !";
  1182.       }
  1183.       else if (Objekty[ID].Styl==2) {
  1184.         StrNaD¼íslo(Objekty[ID].Text,&chyba);
  1185.         zprava="Zadejte prosím des. ƒíslo !";
  1186.       }
  1187.       if (chyba>=0) {
  1188.         int OknoChyba,TextChyba,ChybaTlOk;
  1189.         OknoChyba=Okno(195,185,300,110,"Chyba !",NULL,NULL);
  1190.         TextChyba=Text(50,50,OknoChyba,zprava,NULL,NULL);
  1191.         ChybaTlOk=Tlaƒítko(115,80,70,25,0,OknoChyba,"Ok",NULL,NULL);
  1192.         while(Události()!=ChybaTlOk) { }
  1193.         ZniƒOkno(OknoChyba);
  1194.         Obnov();
  1195.       }
  1196.     }
  1197.   }
  1198.   while(chyba>=0);
  1199.   MyτSchovejKurzor();
  1200.   GrNastavBarvy(0xff);
  1201.   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);
  1202.   GrNastavBarvy(0x00);
  1203.   GrPiτⁿet╪zec(Objekty[ID].Text);
  1204.   MyτZobrazKurzor();
  1205.   return Objekty[ID].Text;
  1206. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1207. =SP---------------------------------------------------------------------------
  1208.  
  1209. ;-h---------------------------------------------------------------------------
  1210. int TextovéPole(int x,y,τí²ka,styl,okno,string text,void (*událost)(),void (*popup)() )
  1211. -s--TextovéPole                                                                 ■   4  -2 -26   3
  1212. TextovéPole
  1213.     1!
  1214. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1215. 1 ;registrace a kreslení textového pole
  1216.   Objekty[IDTextovéPole].X=x+Objekty[okno].X;
  1217.   Objekty[IDTextovéPole].Y=y+Objekty[okno].Y;
  1218.   Objekty[IDTextovéPole].µí²ka=τí²ka;
  1219.   Objekty[IDTextovéPole].V∞τka=16;
  1220.   Objekty[IDTextovéPole].Okno=okno;
  1221.   Objekty[IDTextovéPole].ID=IDTextovéPole;
  1222.   Objekty[IDTextovéPole].Text=text;
  1223.   Objekty[IDTextovéPole].Druh=3;
  1224.   Objekty[IDTextovéPole].Styl=styl;
  1225.   Objekty[IDTextovéPole].Viditeln∞=1;
  1226.   if(událost==NULL) Objekty[IDTextovéPole].P²i²azenaUdálost=0;
  1227.   else {
  1228.     Objekty[IDTextovéPole].Zm╪na=událost;
  1229.     Objekty[IDTextovéPole].P²i²azenaUdálost=1;
  1230.   }
  1231.   Seznamy[IDTextovéPole].Poƒet=0;
  1232.   Objekty[IDTextovéPole].PopUp=popup;
  1233.   _KresliTextovéPole(IDTextovéPole);
  1234.   ++IDTextovéPole;
  1235.   return IDTextovéPole-1;
  1236. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1237. =SP---------------------------------------------------------------------------
  1238.  
  1239. ;-h---------------------------------------------------------------------------
  1240. void _KresliText( int ID )
  1241. -s--_KresliText                                                                 ■   3  -2 -27   3
  1242. KresliText
  1243.     /1
  1244.     │
  1245.  123!
  1246. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1247. 1 MyτSchovejKurzor();
  1248.  
  1249. 2 ; kreslení textu
  1250.   GrNastavPozici(Objekty[ID].X+1,Objekty[ID].Y+1);
  1251.   GrNastavBarvy(0xff);
  1252.   GrPiτⁿet╪zec(Objekty[ID].Text);
  1253.   GrNastavPozici(Objekty[ID].X,Objekty[ID].Y);
  1254.   GrNastavBarvy(0x00);
  1255.   GrPiτⁿet╪zec(Objekty[ID].Text);
  1256. 3 MyτZobrazKurzor();
  1257. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1258. /1 ; Objekt je viditeln∞
  1259.    Objekty[ID].Viditeln∞==1
  1260. =SP---------------------------------------------------------------------------
  1261.  
  1262. ;-h---------------------------------------------------------------------------
  1263. int Text( int  x,y,okno, string text,void (*událost)(),void (*popup)() )
  1264. -s--Text                                                                        ■   4  -2 -29   3
  1265. Text
  1266. 1!
  1267. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1268. 1 ;registrace a kreslení textu
  1269.   Objekty[IDText].X=x+Objekty[okno].X;
  1270.   Objekty[IDText].Y=y+Objekty[okno].Y;
  1271.   Objekty[IDText].µí²ka=StrDélka(text)*8;
  1272.   Objekty[IDText].V∞τka=10;
  1273.   Objekty[IDText].Okno=okno;
  1274.   Objekty[IDText].ID=IDText;
  1275.   Objekty[IDText].Text=text;
  1276.   Objekty[IDText].Druh=2;
  1277.   Objekty[IDText].Styl=0;
  1278.   Objekty[IDText].Viditeln∞=1;
  1279.   if(událost==NULL) Objekty[IDText].P²i²azenaUdálost=0;
  1280.   else {
  1281.     Objekty[IDText].Klik=událost;
  1282.     Objekty[IDText].P²i²azenaUdálost=1;
  1283.   }
  1284.   Seznamy[IDText].Poƒet=0;
  1285.   Objekty[IDText].PopUp=popup;
  1286.   _KresliText(IDText);
  1287.   ++IDText;
  1288.   return IDText-1;
  1289. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1290. =SP---------------------------------------------------------------------------
  1291.  
  1292. ;-h---------------------------------------------------------------------------
  1293. void _KresliTlaƒítko( int ID,z )
  1294. -s--_KresliTlaƒítko                                                             ■   4  -2 -25   3
  1295. KresliTlaĒtko
  1296.      /1
  1297.      │
  1298. 12345!
  1299. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1300. 1 MyτSchovejKurzor();
  1301.  
  1302.   ; vytvo²ení a p²i²azení prom╪nn∞chb
  1303.   int x1,x2,y1,y2;
  1304.   string text;
  1305.   x1=Objekty[ID].X;
  1306.   x2=Objekty[ID].X+Objekty[ID].µí²ka;
  1307.   y1=Objekty[ID].Y;
  1308.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  1309.   text=Objekty[ID].Text;
  1310.  
  1311. 2 ; kreslení tlaƒítka
  1312.   if (Objekty[ID].Styl==0) {
  1313.     if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x88);
  1314.     GrKresliLinku(x1+2,y1+2,x1+2,y2-3);
  1315.     GrKresliLinku(x1+2,y1+2,x2-3,y1+2);
  1316.     if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x00);
  1317.     GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  1318.     GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  1319.     if (z==0) GrNastavBarvy(0x88); else GrNastavBarvy(0xff);
  1320.     GrKresliLinku(x1+2,y2-2,x2-2,y2-2);
  1321.     GrKresliLinku(x2-2,y1+2,x2-2,y2-2);
  1322.     if (z==0) GrNastavBarvy(0x00); else GrNastavBarvy(0xff);
  1323.     GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  1324.     GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  1325.   }
  1326.   else if (Objekty[ID].Styl==1) {
  1327.     if (z==0) GrNastavBarvy(0xff); else GrNastavBarvy(0x88);
  1328.     GrKresliLinku(x1+1,y1+1,x1+1,y2-2);
  1329.     GrKresliLinku(x1+1,y1+1,x2-2,y1+1);
  1330.     if (z==0) GrNastavBarvy(0x88); else GrNastavBarvy(0xff);
  1331.     GrKresliLinku(x1+1,y2-1,x2-1,y2-1);
  1332.     GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  1333.   }
  1334. 3 ; mazání obsahu
  1335.   GrNastavBarvy(0x77);
  1336.   GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-3,y2-3);
  1337.  
  1338. 4 ; psaní textu
  1339.   GrNastavBarvy(0x70);
  1340.   if (z==0) GrNastavPozici((((x2-x1)-(strlen(text)*8))/2)+x1,(((y2-y1)-10)/2)+y1);
  1341.   else GrNastavPozici((((x2-x1)-(strlen(text)*8))/2)+x1+1,(((y2-y1)-10)/2)+y1+1);
  1342.   GrPiτⁿet╪zec(text);
  1343.  
  1344. 5 MyτZobrazKurzor();
  1345. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1346. /1 ; Objekt je viditeln∞
  1347.    Objekty[ID].Viditeln∞==1
  1348. =SP---------------------------------------------------------------------------
  1349.  
  1350. ;-h---------------------------------------------------------------------------
  1351. int Tlaƒítko(int x,y,τí²ka,v∞τka,styl,okno,string text,void (*událost)(),void (*popup)() )
  1352. -s--Tlaƒítko                                                                    ■   4  -2 -27   3
  1353. TlaĒtko
  1354.   1!
  1355. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1356. 1 ;registrace a kreslení tlaƒítka
  1357.   Objekty[IDTlaƒítko].X=x+Objekty[okno].X;
  1358.   Objekty[IDTlaƒítko].Y=y+Objekty[okno].Y;
  1359.   Objekty[IDTlaƒítko].µí²ka=τí²ka;
  1360.   Objekty[IDTlaƒítko].V∞τka=v∞τka;
  1361.   Objekty[IDTlaƒítko].Okno=okno;
  1362.   Objekty[IDTlaƒítko].ID=IDTlaƒítko;
  1363.   Objekty[IDTlaƒítko].Text=text;
  1364.   Objekty[IDTlaƒítko].Druh=1;
  1365.   Objekty[IDTlaƒítko].Styl=styl;
  1366.   Objekty[IDTlaƒítko].Viditeln∞=1;
  1367.   if(událost==NULL) Objekty[IDTlaƒítko].P²i²azenaUdálost=0;
  1368.   else {
  1369.     Objekty[IDTlaƒítko].Klik=událost;
  1370.     Objekty[IDTlaƒítko].P²i²azenaUdálost=1;
  1371.   }
  1372.   Seznamy[IDTlaƒítko].Poƒet=0;
  1373.   Objekty[IDTlaƒítko].PopUp=popup;
  1374.   _KresliTlaƒítko(IDTlaƒítko,0);
  1375.   ++IDTlaƒítko;
  1376.   return IDTlaƒítko-1;
  1377. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1378. =SP---------------------------------------------------------------------------
  1379.  
  1380. ;-h---------------------------------------------------------------------------
  1381. void _KresliOkno( int ID,z )
  1382. -s--_KresliOkno                                                                 ■   4  -2 -27   3
  1383. KresliOkno
  1384.    1!
  1385. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1386. 1 MyτSchovejKurzor();
  1387.  
  1388.   ; vytvo²ení a p²i²azení prom╪nn∞chb
  1389.   int x1,x2,y1,y2;
  1390.   string text;
  1391.   x1=Objekty[ID].X;
  1392.   x2=Objekty[ID].X+Objekty[ID].µí²ka;
  1393.   y1=Objekty[ID].Y;
  1394.   y2=Objekty[ID].Y+Objekty[ID].V∞τka;
  1395.   text=Objekty[ID].Text;
  1396.  
  1397.   if(z==0) {
  1398.   ; kreslení okrajà
  1399.   GrNastavBarvy(0x77);
  1400.   GrKresliLinku(x1,y1,x2,y1);
  1401.   GrKresliLinku(x1,y1,x1,y2);
  1402.   GrNastavBarvy(0x00);
  1403.   GrKresliLinku(x2,y1,x2,y2);
  1404.   GrKresliLinku(x2,y2,x1,y2);
  1405.   GrNastavBarvy(0xff);
  1406.   GrKresliLinku(x1+1,y1+1,x2-1,y1+1);
  1407.   GrKresliLinku(x1+1,y1+1,x1+1,y2-1);
  1408.   GrKresliLinku(x1,y1,x2-1,y1);
  1409.   GrKresliLinku(x1,y1,x1,y2-1);
  1410.   GrNastavBarvy(0x88);
  1411.   GrKresliLinku(x2-1,y1+1,x2-1,y2-1);
  1412.   GrKresliLinku(x2-1,y2-1,x1+1,y2-1);
  1413.   GrNastavBarvy(0x77);
  1414.   GrKresliVypln╪n∞Obdélník(x1+2,y1+2,x2-2,y2-2);
  1415.  
  1416.   ; kreslení k²íºku
  1417.   GrNastavBarvy(0x00);
  1418.   GrKresliLinku(x2-10,y1+8,x2-17,y1+15);
  1419.   GrKresliLinku(x2-11,y1+8,x2-18,y1+15);
  1420.   GrKresliLinku(x2-10,y1+15,x2-17,y1+8);
  1421.   GrKresliLinku(x2-11,y1+15,x2-18,y1+8);
  1422.  
  1423.   ; titulek
  1424.   GrNastavBarvy(0x44);
  1425.   GrKresliVypln╪n∞Obdélník(x1+3,y1+3,x2-26,y1+19);
  1426.   GrNastavBarvy(0x4f);
  1427.   GrNastavPozici(x1+9,y1+6);
  1428.   GrPiτⁿet╪zec(text);
  1429.   }
  1430.  
  1431.   else if (z==1) {
  1432.     GrNastavBarvy(0x77);
  1433.     GrKresliVypln╪n∞Obdélník(x2-10,y1+8,x2-18,y1+15);
  1434.     GrNastavBarvy(0x00);
  1435.     GrKresliLinku(x2-9,y1+9,x2-16,y1+16);
  1436.     GrKresliLinku(x2-10,y1+9,x2-17,y1+16);
  1437.     GrKresliLinku(x2-9,y1+16,x2-16,y1+9);
  1438.     GrKresliLinku(x2-10,y1+16,x2-17,y1+9);
  1439.   }
  1440.   else if (z==2) {
  1441.     GrNastavBarvy(0x77);
  1442.     GrKresliVypln╪n∞Obdélník(x2-9,y1+9,x2-17,y1+16);
  1443.     GrNastavBarvy(0x00);
  1444.     GrKresliLinku(x2-10,y1+8,x2-17,y1+15);
  1445.     GrKresliLinku(x2-11,y1+8,x2-18,y1+15);
  1446.     GrKresliLinku(x2-10,y1+15,x2-17,y1+8);
  1447.     GrKresliLinku(x2-11,y1+15,x2-18,y1+8);
  1448.   }
  1449.  
  1450.   MyτZobrazKurzor();
  1451. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1452. =SP---------------------------------------------------------------------------
  1453.  
  1454. ;-h---------------------------------------------------------------------------
  1455. int Okno( int x,y,τí²ka,v∞τka,string text,void (*událost)(),void (*popup)() )
  1456. -s--Okno                                                                        ■   4  -2 -29   3
  1457. Okno
  1458. 1!
  1459. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1460. 1 ;registrace a kreslení tlaƒítka
  1461.   Objekty[IDOkno].X=x;
  1462.   Objekty[IDOkno].Y=y;
  1463.   Objekty[IDOkno].µí²ka=τí²ka;
  1464.   Objekty[IDOkno].V∞τka=v∞τka;
  1465.   Objekty[IDOkno].Druh=0;
  1466.   Objekty[IDOkno].ID=IDOkno;
  1467.   Objekty[IDOkno].Text=text;
  1468.   if(událost==NULL) Objekty[IDOkno].P²i²azenaUdálost=0;
  1469.   else {
  1470.     Objekty[IDOkno].Klik=událost;
  1471.     Objekty[IDOkno].P²i²azenaUdálost=1;
  1472.   }
  1473.   Objekty[IDOkno].PopUp=popup;
  1474.   _KresliOkno(IDOkno,0);
  1475.   ++IDOkno;
  1476.   return IDOkno-1;
  1477. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1478. =SP---------------------------------------------------------------------------
  1479.  
  1480. ;-h---------------------------------------------------------------------------
  1481. int Události( void )
  1482. -s--Události                                                                    ■  14  -2 -11   3
  1483.                                  Události
  1484.                                    0!
  1485.                                    Klik
  1486.                                    M!
  1487.              _______________________│_____
  1488.              │                        Obnovit?_________
  1489.          ____|____________               /:Obnovit==1 /
  1490.          /T              /              Ano           Ne
  1491.    stisk~tl~myτi        nic      :Obnov()!
  1492. 123456789!                     :Obnovit=0!
  1493.         A!
  1494. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1495. 0  int tl=StartTlaƒítko,
  1496.       okno=IDOkno-1,
  1497.       text=StartText,
  1498.       textpole=StartTextovéPole,
  1499.       vyp=StartVypínaƒ,
  1500.       pre=StartP²epínaƒ,
  1501.       vyb=StartV∞b╪r,
  1502.       menu=StartMenu;
  1503.  
  1504. M Myτ¼tiUdálost(gMyτUdálost);
  1505.  
  1506. 1 ; je stisk tlaƒítka u myτi i objektu
  1507.   tl=StartTlaƒítko;
  1508.   while (tl!=IDTlaƒítko) {
  1509.   ; je stisknuto viditelné tlaƒítko ?
  1510.   if(gMyτUdálost.X>Objekty[tl].X &&
  1511.      gMyτUdálost.Y>Objekty[tl].Y &&
  1512.      gMyτUdálost.X<Objekty[tl].X+Objekty[tl].µí²ka &&
  1513.      gMyτUdálost.Y<Objekty[tl].Y+Objekty[tl].V∞τka &&
  1514.      Objekty[tl].Okno==okno &&
  1515.      Objekty[tl].Viditeln∞==1) {
  1516.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[tl].Poƒet!=0) {
  1517.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,tl);
  1518.       Objekty[tl].PopUp();
  1519.       return -1;
  1520.     }
  1521.     else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1522.       _KresliTlaƒítko(tl,1);
  1523.       while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru)
  1524.         { Myτ¼tiUdálost(gMyτUdálost); }
  1525.       _KresliTlaƒítko(tl,0);
  1526.       if (Objekty[tl].P²i²azenaUdálost==1) Objekty[tl].Klik();
  1527.       return tl;
  1528.     }
  1529.   }
  1530.     ++tl;
  1531.   }
  1532.  
  1533. 2 ; je p²esunuto aktivní okno
  1534.   if (gMyτUdálost.X>Objekty[okno].X+2 &&
  1535.       gMyτUdálost.Y>Objekty[okno].Y+2 &&
  1536.       gMyτUdálost.X<Objekty[okno].X+Objekty[okno].µí²ka-25 &&
  1537.       gMyτUdálost.Y<Objekty[okno].Y+20) {
  1538.     int xok=gMyτUdálost.X-Objekty[okno].X, /* xok = X Okno Klik (bod kliku od levého horního rohu)*/
  1539.         yok=gMyτUdálost.Y-Objekty[okno].Y,
  1540.         mx=gMyτUdálost.X,
  1541.         my=gMyτUdálost.Y,
  1542.         mx1=gMyτUdálost.X,
  1543.         my1=gMyτUdálost.Y;
  1544.  
  1545.     GrNastavBarvuPop²edí(Bílá);
  1546.     GrNastavLinku(GrLinkaZpàsobKresleníXor);
  1547.  
  1548.     while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru) {
  1549.  
  1550.       Myτ¼tiUdálost(gMyτUdálost);
  1551.       mx1=gMyτUdálost.X;
  1552.       my1=gMyτUdálost.Y;
  1553.       if(mx!=mx1 || my!=my1) { /* pohyb myτí */
  1554.         MyτSchovejKurzor();
  1555.  
  1556.         GrKresliObdélník(mx1-xok,my1-yok,mx1-xok+Objekty[okno].µí²ka,my1-yok+Objekty[okno].V∞τka);
  1557.         GrKresliObdélník(mx-xok,my-yok,mx-xok+Objekty[okno].µí²ka,my-yok+Objekty[okno].V∞τka);
  1558.  
  1559.         Myτ¼tiUdálost(gMyτUdálost);
  1560.         mx=gMyτUdálost.X;
  1561.         my=gMyτUdálost.Y;
  1562.  
  1563.         MyτZobrazKurzor();
  1564.       }
  1565.     }
  1566.     GrNastavLinku(GrLinkaZpàsobKresleníNormáln╪);
  1567.     P²esuσOkno(mx-xok,my-yok,okno);
  1568.     Obnov();
  1569.     return -1;
  1570.   }
  1571. 3 ; stisk v oblasti k²íºku
  1572.   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) {
  1573.    _KresliOkno(okno,1);
  1574.    while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru) { Myτ¼tiUdálost(gMyτUdálost); }
  1575.    _KresliOkno(okno,2);
  1576.    if (Objekty[okno].P²i²azenaUdálost==1)  Objekty[okno].Klik();
  1577.    return okno;
  1578.   }
  1579.  
  1580.  
  1581. 4 ; stisk v oblasti textu
  1582.   while (text!=IDText) {
  1583.   if(gMyτUdálost.X>Objekty[text].X &&
  1584.      gMyτUdálost.Y>Objekty[text].Y &&
  1585.      gMyτUdálost.X<Objekty[text].X+Objekty[text].µí²ka &&
  1586.      gMyτUdálost.Y<Objekty[text].Y+Objekty[text].V∞τka &&
  1587.      Objekty[text].Okno==okno &&
  1588.      Objekty[text].Viditeln∞==1) {
  1589.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[text].Poƒet>0) {
  1590.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,text);
  1591.       Objekty[text].PopUp();
  1592.       return -1;
  1593.     }
  1594.     else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1595.       while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru)
  1596.         { Myτ¼tiUdálost(gMyτUdálost); }
  1597.       if (Objekty[text].P²i²azenaUdálost==1)  Objekty[text].Klik();
  1598.       return text;
  1599.     }
  1600.    }
  1601.    ++text;
  1602.    }
  1603. 5 ; stisk v oblasti textového pole
  1604.   while (textpole!=IDTextovéPole) {
  1605.   if(gMyτUdálost.X>Objekty[textpole].X &&
  1606.      gMyτUdálost.Y>Objekty[textpole].Y &&
  1607.      gMyτUdálost.X<Objekty[textpole].X+Objekty[textpole].µí²ka &&
  1608.      gMyτUdálost.Y<Objekty[textpole].Y+Objekty[textpole].V∞τka &&
  1609.      Objekty[textpole].Okno==okno &&
  1610.      Objekty[textpole].Viditeln∞==1) {
  1611.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[textpole].Poƒet>0) {
  1612.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,textpole);
  1613.       Objekty[textpole].PopUp();
  1614.       return -1;
  1615.     }
  1616.     else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1617.       UpravTextovéPole(textpole);
  1618.       if (Objekty[textpole].P²i²azenaUdálost==1)  Objekty[textpole].Zm╪na();
  1619.       return textpole;
  1620.     }
  1621.    }
  1622.    ++textpole;
  1623.    }
  1624. 6 ; stisk v oblasti vypínaƒe
  1625.   while (vyp!=IDVypínaƒ) {
  1626.   if(gMyτUdálost.X>Objekty[vyp].X &&
  1627.      gMyτUdálost.Y>Objekty[vyp].Y &&
  1628.      gMyτUdálost.X<Objekty[vyp].X+Objekty[vyp].µí²ka &&
  1629.      gMyτUdálost.Y<Objekty[vyp].Y+Objekty[vyp].V∞τka &&
  1630.      Objekty[vyp].Okno==okno &&
  1631.      Objekty[vyp].Viditeln∞==1) {
  1632.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[vyp].Poƒet>0) {
  1633.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,vyp);
  1634.       Objekty[vyp].PopUp();
  1635.       return -1;
  1636.     }
  1637.     else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1638.       if (Objekty[vyp].Spec==1) Objekty[vyp].Spec=0;
  1639.       else if (Objekty[vyp].Spec==0) Objekty[vyp].Spec=1;
  1640.       _KresliVypínaƒ(vyp);
  1641.       if (Objekty[vyp].P²i²azenaUdálost==1)  Objekty[vyp].Zm╪na();
  1642.       return vyp;
  1643.     }
  1644.    }
  1645.    ++vyp;
  1646.    }
  1647.  
  1648. 7 ; stisk v oblasti p²epínaƒe
  1649.   while (pre!=IDP²epínaƒ) {
  1650.   if(gMyτUdálost.X>Objekty[pre].X &&
  1651.      gMyτUdálost.Y>Objekty[pre].Y &&
  1652.      gMyτUdálost.X<Objekty[pre].X+Objekty[pre].µí²ka &&
  1653.      gMyτUdálost.Y<Objekty[pre].Y+Objekty[pre].V∞τka &&
  1654.      Objekty[pre].Okno==okno &&
  1655.      Objekty[pre].Viditeln∞==1) {
  1656.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[pre].Poƒet>0) {
  1657.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,pre);
  1658.       Objekty[pre].PopUp();
  1659.       return -1;
  1660.     }
  1661.     else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1662.       int pre1=StartP²epínaƒ;
  1663.       while (pre1!=IDP²epínaƒ) {
  1664.         if(Objekty[pre1].Skupina==Objekty[pre].Skupina && pre1!=pre) {
  1665.           Objekty[pre1].Spec=0;
  1666.           _KresliP²epínaƒ(pre1);
  1667.         }
  1668.         ++pre1;
  1669.       }
  1670.       Objekty[pre].Spec=1;
  1671.       _KresliP²epínaƒ(pre);
  1672.       if (Objekty[pre].P²i²azenaUdálost==1) Objekty[pre].Zm╪na();
  1673.       return pre;
  1674.     }
  1675.    }
  1676.    ++pre;
  1677.    }
  1678.  
  1679. 8 ; stisk v oblasti tlaƒíka v∞b╪ru
  1680.   while (vyb!=IDV∞b╪r) {
  1681.   if(gMyτUdálost.X>Objekty[vyb].X+Objekty[vyb].µí²ka-13 &&
  1682.      gMyτUdálost.Y>Objekty[vyb].Y+2 &&
  1683.      gMyτUdálost.X<Objekty[vyb].X+Objekty[vyb].µí²ka-2 &&
  1684.      gMyτUdálost.Y<Objekty[vyb].Y+Objekty[vyb].V∞τka-2 &&
  1685.      Objekty[vyb].Okno==okno &&
  1686.      Objekty[vyb].Viditeln∞==1) {
  1687.     if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1688.       _KresliV∞b╪r(vyb,1);
  1689.       while (gMyτUdálost.Typ != MyτUdálostLevéTlNahoru)
  1690.         { Myτ¼tiUdálost(gMyτUdálost); }
  1691.       _KresliV∞b╪r(vyb,0);
  1692.       Spus£V∞b╪r(vyb);
  1693.       if (Objekty[vyb].P²i²azenaUdálost==1) Objekty[vyb].Zm╪na();
  1694.       return vyb;
  1695.     }
  1696.   }
  1697.   if(gMyτUdálost.X>Objekty[vyb].X &&
  1698.      gMyτUdálost.Y>Objekty[vyb].Y &&
  1699.      gMyτUdálost.X<Objekty[vyb].X+Objekty[vyb].µí²ka &&
  1700.      gMyτUdálost.Y<Objekty[vyb].Y+Objekty[vyb].V∞τka &&
  1701.      Objekty[vyb].Okno==okno &&
  1702.      Objekty[vyb].Viditeln∞==1) {
  1703.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[vyb].Poƒet>0) {
  1704.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,vyb);
  1705.       Objekty[vyb].PopUp();
  1706.       return -1;
  1707.     }
  1708.   }
  1709.   ++vyb;
  1710.   }
  1711.  
  1712. 9 ; stisk v oblasti menu
  1713.   menu=StartMenu;
  1714.   while (menu!=IDMenu) {
  1715.   if(gMyτUdálost.X>Objekty[menu].X &&
  1716.      gMyτUdálost.Y>Objekty[menu].Y &&
  1717.      gMyτUdálost.X<Objekty[menu].X+Objekty[menu].µí²ka &&
  1718.      gMyτUdálost.Y<Objekty[menu].Y+Objekty[menu].V∞τka &&
  1719.      Objekty[menu].Okno==okno &&
  1720.      Objekty[menu].Viditeln∞==1) {
  1721.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[menu].Poƒet>0) {
  1722.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,menu);
  1723.       Objekty[menu].PopUp();
  1724.       return -1;
  1725.     }
  1726.     else if(gMyτUdálost.Typ==MyτUdálostLevéTlDolà) {
  1727.       _KresliMenu(menu,1);
  1728.       Spus£Menu(menu);
  1729.       if (Objekty[menu].P²i²azenaUdálost==1) Objekty[menu].Zm╪na();
  1730.       return menu;
  1731.     }
  1732.   }
  1733.     ++menu;
  1734.   }
  1735. A ; stisk v oblasti okna (pro PopUp)
  1736.   if(gMyτUdálost.X>Objekty[okno].X &&
  1737.      gMyτUdálost.Y>Objekty[okno].Y+20 &&
  1738.      gMyτUdálost.X<Objekty[okno].X+Objekty[okno].µí²ka &&
  1739.      gMyτUdálost.Y<Objekty[okno].Y+Objekty[okno].V∞τka) {
  1740.     if(gMyτUdálost.Typ==MyτUdálostPravéTlDolà && Seznamy[okno].Poƒet>0) {
  1741.       Spus£PopUpMenu(gMyτUdálost.X,gMyτUdálost.Y,okno);
  1742.       Objekty[okno].PopUp();
  1743.       return -1;
  1744.     }
  1745.   }
  1746. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1747. /T gMyτUdálost.Typ == MyτUdálostLevéTlDolà || gMyτUdálost.Typ == MyτUdálostPravéTlDolà
  1748. =SP---------------------------------------------------------------------------
  1749.  
  1750. ;-h---------------------------------------------------------------------------
  1751. void main( void )
  1752. -s--Init                                                                        ■  17  -2  -9   3
  1753.    ______________Init______________________________
  1754. Zaƒátek    ____Prost²edek_________________      Konec
  1755.  0[!       /:GrafickáKarta()>=KartaVGA   /        !]
  1756.      Karta~Vyhovuje               Karta~Nevyhovuje
  1757.          12!              :P²epniNaText()!
  1758.            e                            N!
  1759.           3!                   :Tón(1000)!
  1760.                               :¼ekej(500)!
  1761.                               :VypniTón()!
  1762.                         :¼ekejNaKlávesu()!
  1763. -o1----------------------SEZNAM OPERAC╓------------TENTO ⁿ╡DEK NEM╖NIT!-------
  1764. 0
  1765. [ ;vytvo² Baltazaràv grafick∞ prostor
  1766.    Vytvo²Prostor(); MyτZaƒátekObsluhy();
  1767. ] ;zruτ Baltazaràv grafick∞ prostor
  1768.   MyτKonecObsluhy(); ZruτProstor();
  1769. 1 GrNaƒtiPaletu("*\\GUI.pal");
  1770.   GrNastavMód(GrMódVGA);
  1771.   GrNastavV∞stup(2);
  1772.   GrNastavBarvy(0x66);
  1773.   GrSmaºOkno();
  1774.   MyτZobrazKurzor();
  1775.   GrNastavText(GrTextBezPozadí);
  1776.  
  1777. 2 ; Uºivatelské objekty
  1778.  
  1779.   Okno1=Okno(170,145,300,120,"Demonstraƒní okno",Okno1XKlik,NULL);
  1780.   Tl1=Tlaƒítko(11,85,70,20,0,Okno1,"Tlaƒítko",Tl1Klik,NULL);
  1781.   TextPole1=TextovéPole(10,40,100,0,Okno1,"Tlaƒítko",TextPole1Zm╪na,NULL);
  1782.   Text1=Text(9,27,Okno1,"Text tlaƒítka",NULL,NULL);
  1783.   Vyp1=Vypínaƒ(11,63,1,Okno1,"Viditelné",Vyp1Zm╪na,NULL);
  1784.   Pre1=P²epínaƒ(89,88,1,0,Okno1,"Normální",PreSk1Zm╪na,NULL);
  1785.   Pre2=P²epínaƒ(178,88,0,0,Okno1,"Ploché",PreSk1Zm╪na,NULL);
  1786.   Vyb1=V∞b╪r(135,54,100,Okno1,"1",NULL,NULL);
  1787.     MenuV∞b╪rP²idejPoloºku(Vyb1,"1");
  1788.     MenuV∞b╪rP²idejPoloºku(Vyb1,"2");
  1789. 3 while(Konec==0) {
  1790.     Události();
  1791.   }
  1792. N TxtPiτⁿet╪zec("Nevyhovující grafická karta !!!");
  1793. -c1----------------------SEZNAM PODM╓NEK-----------TENTO ⁿ╡DEK NEM╖NIT!-------
  1794. =SP---------------------------------------------------------------------------
  1795.  
  1796. //
  1797. // Konec souboru
  1798. //////////////////
  1799.