e278b609d45230c226f15f1bb9e292b89c47e565
[loglan.git] / new1.log
1 Program SystemedeFenetrage;\r
2 \r
3    (*****************************************************************************)\r
4    (*             premiere famille de classes : les classes graphiques          *)\r
5    (*****************************************************************************)\r
6    Unit Ptr : Class;\r
7    End Ptr;\r
8 \r
9    Unit Windows : Ptr Class(father :windows,x1,y1,x2,y2 : integer);\r
10    Close hauteur,largeur;\r
11    Var lborder,cfond,cborder : integer,\r
12       hauteur,largeur       : integer,\r
13       xpos,ypos,xmax,ymax   : integer,\r
14       num_id                : integer,\r
15       save_map              : arrayof integer;\r
16 \r
17       Unit Affiche : procedure;\r
18       Begin\r
19        call father.rectanglef(x1,y1,x2,y2,cfond);\r
20       End Affiche;\r
21 \r
22       Unit virtual rectangle : procedure(xx1,yy1,xx2,yy2,c :integer);\r
23       Begin\r
24        if(xx1<x2 and xx1>x1 and yy1<y2 and yy2>y1)\r
25        then call father.rectangle(xx1,yy1,xx2,yy2,c);\r
26        fi;\r
27       End rectangle;\r
28 \r
29       Unit virtual rectanglef : procedure(xx1,yy1,xx2,yy2,c : integer);\r
30       End rectanglef;\r
31 \r
32 \r
33    Begin\r
34     hauteur:=y2-y1-2*lborder;\r
35     largeur:=x2-x1-2*lborder;\r
36    End Windows;\r
37 \r
38    Unit Bitmap : Windows Class;\r
39    End Bitmap;\r
40 \r
41    Unit Son : Windows Class;\r
42    End Son;\r
43 \r
44    Unit Maine : Windows Class;\r
45    End Maine;\r
46 \r
47    Unit Dialogue : Son Class;\r
48    End Dialogue;\r
49 \r
50    Unit Catalogue : Dialogue Class;\r
51    End Catalogue;\r
52 \r
53    Unit Question : Dialogue Class;\r
54    End Question;\r
55 \r
56    Unit Widgets : Ptr Class;\r
57    End Widgets;\r
58 \r
59    Unit Menu : Widgets Class;\r
60    End Menu;\r
61 \r
62    Unit Menu_V : Menu Class;\r
63    End Menu_V;\r
64 \r
65    Unit Menu_H : Menu Class;\r
66    End Menu_H;\r
67 \r
68    Unit Bottons : Widgets Class;\r
69    End Bottons;\r
70 \r
71    Unit Racc : Bottons Class;\r
72    End Racc;\r
73 \r
74    Unit Opt_list : Bottons Class;\r
75    End Opt_list;\r
76 \r
77    Unit Oneline : Opt_list Class;\r
78    End Oneline;\r
79 \r
80    Unit Multiline : Opt_list Class;\r
81    End Multiline;\r
82 \r
83    Unit Botton : Bottons Class;\r
84    End Botton;\r
85 \r
86    Unit Lift : Widgets Class;\r
87    End Lift;\r
88 \r
89    Unit Lift_V : Lift Class;\r
90    End Lift_V;\r
91 \r
92    Unit Lift_H : Lift Class;\r
93    End Lift_H;\r
94 \r
95    (*****************************************************************************)\r
96    (*          deuxieme famille de classes : les structures de donnees          *)\r
97    (*****************************************************************************)\r
98    Unit Ensemble : CLass;\r
99    End Ensemble;\r
100 \r
101    Unit Queue : Ensemble Class;\r
102    End Queue;\r
103 \r
104    Unit Ofpriority : Queue Class;\r
105    End Ofpriority;\r
106 \r
107    Unit ListD : Ensemble Class;\r
108    End ListD;\r
109 \r
110    Unit Clic : ListD Class;\r
111    End Clic;\r
112 \r
113    Unit Bot : ListD Class;\r
114    End Bot;\r
115 \r
116    Unit Key : ListD Class;\r
117    End Key;\r
118 \r
119    Unit Win : ListD Class;\r
120    End Win;\r
121 \r
122    Unit Stack : Ensemble Class;\r
123    End Stack;\r
124 \r
125 \r
126    (*****************************************************************************)\r
127    (*                           Famille de process                              *)\r
128    (*****************************************************************************)\r
129    Unit Applications : process (node : integer);\r
130    End Applications;\r
131 \r
132    Unit Gest_event : mouse process (node : integer,gest : gest_wind);\r
133 \r
134     Unit ready : procedure;\r
135     End ready;\r
136 \r
137     Unit event : function(output v,h,p,l,r,c : integer) : boolean;\r
138     Begin\r
139      result:=getpress(v,h,p,l,r,c);\r
140     End;\r
141 \r
142    Var i :integer,\r
143        v,h,p,l,r,c : integer;\r
144    Begin\r
145       return;\r
146       accept ready;\r
147       call init(1,1);\r
148       call showcursor;\r
149       do\r
150        if(event(v,h,p,l,r,c))\r
151        then call gest.event(v,h,p,l,r,c);\r
152        fi;\r
153       od\r
154    End Gest_event;\r
155 \r
156    Unit Gest_wind : iiuwgraph process(node,x1,y1,x2,y2 : integer,gest:gest_event);\r
157    Var i :integer,\r
158        v,p,h,l,r,c : integer,\r
159        w : windows,\r
160        j : graph;\r
161 \r
162     Unit getinfo : procedure (g : gest_event);\r
163     Begin\r
164      gest:=g;\r
165      disable getinfo;\r
166     End getinfo;\r
167 \r
168     Unit event : procedure (input lv,lh,lp,ll,lr,lc : integer);\r
169     Begin\r
170      v:=lv; h:=lh; p:=lp; l:=ll; r:=lr; c:=lc;\r
171     End event;\r
172 \r
173     Unit traitement : procedure;\r
174     Begin\r
175      if((h=164 and l=27) or   c=3)\r
176      then call fin;\r
177      fi;\r
178      call patern(80,25,130,100,0,1);\r
179      call track(40,10,4,v);\r
180      call track(140,10,4,p);\r
181      call track(80,30,4,h);\r
182      call track(80,50,4,l);\r
183      call track(80,70,4,r);\r
184      call track(80,90,4,c);\r
185     End traitement;\r
186 \r
187     Unit fin : procedure;\r
188     begin\r
189      call groff;\r
190      writeln("on ferme");\r
191      call endrun;\r
192     End fin;\r
193 \r
194     Unit graph : windows class;\r
195 \r
196      Unit virtual rectangle : procedure (x1,y1,x2,y2,c : integer);\r
197      Begin\r
198       call patern(x1,y1,x2,y2,c,0);\r
199      End rectangle;\r
200 \r
201      Unit virtual rectanglef : procedure (x1,y1,x2,y2,c : integer);\r
202      Begin\r
203       call patern(x1,y1,x2,y2,c,1);\r
204      End rectanglef;\r
205 \r
206     End graph;\r
207 \r
208    Begin\r
209       call gron(0);\r
210       j:=new graph(none,0,0,0,0);\r
211       w:=new windows(j,x1,y1,x2,y2);\r
212       w.cfond:=10;\r
213       call w.affiche;\r
214       return;\r
215       accept getinfo;\r
216       call gest.ready;\r
217       call outstring(10,40,"Windows",0,10);\r
218       do\r
219        accept event;\r
220        call traitement;\r
221       od;\r
222       call groff;\r
223    End Gest_wind;\r
224 \r
225    Unit Application : Applications process;\r
226    End Application;\r
227 \r
228 \r
229 (*****************************************************************************)\r
230 (*                   P r o g r a m  m e   P r i n c i p a l                  *)\r
231 (*****************************************************************************)\r
232 Var i  : integer,\r
233     G1 : Gest_wind,\r
234     G2 : Gest_event;\r
235 handlers\r
236     when memerror : call endrun;\r
237     when syserror : call endrun;\r
238 end handlers;\r
239 Begin\r
240    G1:=new Gest_wind(0,0,0,640,480,none);\r
241    G2:=new Gest_event(0,G1);\r
242    resume(G1);\r
243    resume(G2);\r
244    call G1.getinfo(G2);\r
245 End.\r
246 \r
247 \r
248 \r
249 \r
250 \r
251 \r
252 \r
253 \r