% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> % DESSIN.sim : un environnement de dessin simple pour IFT1010 % % Auteur: Jean Vaucher % Version: 2.2 % Date: 16 mars 1997 % % Version: 2.1 (4 avril. 1996) % Version: 1.0 (9 fev. 1996) % >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> % 2.2: Revise pour revenir a qqc de plus proche de WINDOWTOOLS % - Origine en hat a gauche % - pas de refresh automatique % % 2.1: MakeDessin ajoute a Application % + Pause % + Bouton % + S_vide, S_colore, S_plein % % 2.0: ajout de classe APPLICATION pour capter des evenements % % --------------------------------------------------------------------- % PGM: % begin % external class dessin; % % Application class AplicationGraphique; % begin ... votre programme graphique...end; % % new ApplicationGraphique("Titre"); % end % % COMPILATION: % % % sim -simwin % % >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> EXTERNAL class WINDOWTOOLS; % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SideWindow class Dessin; % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ virtual: procedure Mouse_click is procedure Mouse_click(X,Y); integer X,Y;; begin integer X_pos, Y_pos; ! ref(Bouton_a_Nous) Bouton; procedure Reset; begin Clear; SetLineWidth(1); SetFill("black"); SetForeGround ("black"); X_pos := Y_pos := 0; end; procedure Initialiser; Reset; procedure handle_button_click(button); integer button; mouse_click(x_of_event, Height-y_of_event); procedure Mouse_click(X,Y); integer X,Y; ! version par defaut ne fait rien; ; ! ======= initialisation ======== ; SetSize(500,300); Show; end; % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ MainWindow class Application; % @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ VIRTUAL: procedure Mouse_click is procedure Mouse_click(X,Y); integer X,Y;; procedure Button_press is procedure Button_press(B); ref(Button) B;; BEGIN % -------------- Traitement d'evenements ------------------- ; procedure handle_button_click(button); integer button; begin Clicked := true; mouse_click(x_of_event, y_of_event); end; procedure Mouse_click(X,Y); integer X,Y; ; ! version par defaut ne fait rien; procedure ClickinButton(B); ref(Button) B; Button_press(B); procedure Button_press(B); ref(button) B; ; ! version par defaut ne fait rien; Boolean Procedure Clic; begin handle_pending_events; Clic := Clicked; Clicked := false; end; % --------------------------------------------------------- integer X_pos, Y_pos; Boolean Clicked; procedure Reset; begin Clear; SetLineWidth(1); SetFill("black"); SetForeGround ("black"); X_pos := Y_pos := 0; end; ref(Dessin) procedure NouveauDessin(T); text T; NouveauDessin :- new Dessin(T,this Application); procedure Initialiser; Reset; ref(dessin) procedure MakeDessin(Titre); text Titre; MakeDessin :- new Dessin(Titre, this Xwindow); ! ======= initialisation ======== ; SetSize(600,400); Show; end ----- ===== Application ===== ------ ;