1 Program systemefenetrage;
\r
3 (***************************************************************************)
\r
4 (* Programme de syst
\8ame de fenetrage avec boutons et gestion de la souris *)
\r
5 (* PATAUD Fr
\82d
\82ric & PEYRAT Fran
\87ois 1993/1994 *)
\r
6 (***************************************************************************)
\r
18 Unit Line : procedure (x1,y1,x2,y2,c : integer);
\r
25 Unit Rectangle : procedure (x1,y1,x2,y2,c : integer);
\r
27 writeln(f,x1,y1,x2,y2,c);
\r
36 Unit Rectanglef : procedure (x1,y1,x2,y2,c : integer);
\r
41 call Line(x1,i,x2,i,c);
\r
45 Unit windows : class;
\r
47 ind,indc,x1,y1,x2,y2: integer,
\r
51 unit menu : class(nom : string,action : integer,suiv : menu);
\r
54 x1,y1,x2,y2,c : integer;
\r
56 unit affiche : procedure;
\r
62 call rectanglef(x1+1,y1+1,x2-1,y2-1,7);
\r
64 call move(x1+10,y2-15);
\r
65 call outstring(nom);
\r
66 call rectangle(x1,y1,x2,y2,c);
\r
77 while p_rgs.suiv =/= none do p_rgs := p_rgs.suiv;od ;
\r
78 p_rgs.suiv := new rgs(x1,y1,x2,y2,action);
\r
82 unit gestionnaire : procedure;
\r
84 choix,h,v,p,b:integer,
\r
90 (* call status(h,v,l,r,c);
\r
93 call status(h,v,l,r,c);*)
\r
94 while not l and not r do call getpress(0,h,v,p,l,r,c);od;
\r
97 call rectangle(50,50,h,v,3);
\r
100 writeln(f,"choix : ",choix);
\r
102 when 1 : call rectangle(200,200,250,250,3);
\r
104 when 2 : call rectangle(160,160,300,300,3);
\r
106 when 3 : call rectangle(120,120,350,350,3);
\r
114 unit quoi : function (h,v : integer) : integer;
\r
117 resultat : integer,
\r
121 p_rgs := p_rgs.suiv;
\r
123 a:=(p_rgs.x1 < h and p_rgs.x2> h ) ;
\r
124 b:=(p_rgs.y1 < v and p_rgs.y2 > v) ;
\r
127 result := p_rgs.code;
\r
130 if p_rgs.suiv =/= none
\r
140 unit rgs : class(x1,y1,x2,y2,code : integer);
\r
144 call rectangle(x1,y1+100,x2,y2+100,15);
\r
147 unit affiche : procedure(x1,y1,x2,y2 : integer);
\r
149 call rectangle(x1,y1,x2,y2,1);
\r
150 call rectanglef(x1+3,y1+3,x2-3,30,8);
\r
151 call rectangle(x1+3,33,x2-3,y2-3,9);
\r
161 call affiche(x1,y1,x2,y2);
\r
162 rgs_pere := new rgs(0,0,0,0,0);
\r
167 Unit monwindows : windows class;
\r
169 menubar := new menu("troisieme",3,
\r
170 new menu("deuxieme",2,
\r
171 new menu("premier",1,none)));
\r
172 call menubar.affiche;
\r
179 open(f,text,unpack("testing"));
\r
182 w := new monwindows;
\r