! Groupe 3CT307 : Edouard COUPEZ, Ludovic MARCÉ, Jing ZHOU ! Date de dernière modification: 09/12/2005 ! Description: ! Ce fichier écrit en langage UIL décrit l'allure de l'interface. module Interface version = 'V1.0' names = case_sensitive character_set = iso_latin1 procedure cbQuitter(); cbNouveau(any); ! cbApropos(); cbOutil(integer); cbCouleur(integer); cbEpaisseur(); cbDessin(); cbMajPointeur(any); cbContraindre(integer); cbRemplissage(integer); !cbRedimensionnement(); value CRAYON: 0; GOMME: 1; LIGNE: 2; RECTANGLE: 3; ELIPSE: 4; RIEN: 5; BLANC: 0; NOIR: 1; ROUGE: 2; JAUNE: 3; VERT: 4; BLEU: 5; ! false: 0; ! true: 1; identifier datas; ! Liste les differentes donnees associees au programme outilEnCours; !-- Zone principale object wPrincipal: XmMainWindow { arguments { XmNwidth = 800; XmNheight = 600; }; controls { XmMenuBar mbMenuHaut; XmForm zoneTravail; }; }; object zoneTravail: XmForm { arguments { XmNwidth = 800; XmNheight = 600; XmNbackground = rgb(60000,60000,60000); }; controls { XmDrawingArea zoneDessin; XmDrawnButton dbCrayon; XmDrawnButton dbGomme; XmDrawnButton dbLigne; XmDrawnButton dbRectangle; XmDrawnButton dbElipse; XmDrawnButton dbNouveau; XmScale sEpaisseur; XmSeparator separateurOutils; XmSeparator separateurHaut; XmLabel txtRemplissage; XmRadioBox rbRemplissage; XmLabel txtContraindre; XmRadioBox rbContraindre; XmDrawnButton dbBlanc; XmDrawnButton dbNoir; XmDrawnButton dbRouge; XmDrawnButton dbJaune; XmDrawnButton dbVert; XmDrawnButton dbBleu; }; }; zoneDessin: XmDrawingArea { arguments { XmNborderWidth = 1; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNwidth = 800; XmNheight = 600; XmNbackground = rgb(65535,65535,65535); XmNrightAttachment = XmATTACH_POSITION; XmNbottomAttachment = XmATTACH_POSITION; XmNresizable = true; XmNrightPosition = 95; XmNbottomPosition = 80; XmNleftOffset = 150; XmNtopOffset = 10; }; callbacks { XmNinputCallback = procedure cbDessin(); !XmNresizeCallback = procedure cbRedimensionnement(); }; }; !-- Barre de Menus object mbMenuHaut: XmMenuBar { controls { XmCascadeButton cb_fichier; ! XmCascadeButton cb_outils; ! XmCascadeButton cb_aide; }; }; ! Menu Fichier object cb_fichier: XmCascadeButton { arguments { XmNlabelString = compound_string("Fichier"); }; controls { XmPulldownMenu pd_fichier; }; }; object pd_fichier: XmPulldownMenu { controls { XmPushButton pb_nouveau; XmPushButton pb_quitter; }; }; object pb_nouveau : XmPushButton { arguments { XmNlabelString = compound_string("Nouveau"); }; callbacks { XmNactivateCallback = procedure cbNouveau(zoneDessin); }; }; object pb_quitter : XmPushButton { arguments { XmNlabelString = compound_string("Quitter"); }; callbacks { XmNactivateCallback = procedure cbQuitter(); }; }; /* ! Menu Aide object cb_aide: XmCascadeButton { arguments { XmNlabelString = compound_string("Aide"); }; controls { XmPulldownMenu pd_aide; }; }; object pd_aide: XmPulldownMenu { controls { XmPushButton pb_apropos; }; }; object pb_apropos : XmPushButton { arguments { XmNlabelString = compound_string("A propos"); }; callbacks { XmNactivateCallback = procedure cbApropos(); }; }; */ !-- Outils object separateurHaut: XmSeparator { arguments { !XmNseparatorType = XmSINGLE_LINE; XmNy = 80; XmNwidth = 132; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10; XmNrightOffset = 10; }; }; object dbCrayon: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 11; XmNheight = 100; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNlabelType = XmPIXMAP; XmNbackgroundPixmap = xbitmapfile('crayon.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 67; XmNtopOffset = 100; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbOutil(CRAYON); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbGomme: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 32; XmNheight = 52; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('gomme.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 85; XmNtopOffset = 105; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbOutil(GOMME); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbLigne: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 30; XmNheight = 148; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('regle.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 25; XmNtopOffset = 100; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbOutil(LIGNE); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object separateurOutils: XmSeparator { arguments { XmNseparatorType = XmSHADOW_ETCHED_IN_DASH; XmNy = 252; XmNwidth = 132; XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 10; }; }; object dbRectangle: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 80; XmNheight = 50; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('equerre.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 10; XmNtopOffset = 260; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbOutil(RECTANGLE); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbElipse: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 50; XmNheight = 80; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('compas.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 95; XmNtopOffset = 260; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbOutil(ELIPSE); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbNouveau: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 130; XmNheight = 50; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('nouveau.xpm'); XmNpushButtonEnabled = true; XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 10; XmNtopOffset = 20; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbNouveau(zoneDessin); }; }; ! Ensemble permettant a l'utilisateur d'indiquer si il veut ou pas remplir les formes object txtRemplissage: XmLabel { arguments { XmNx = 15; XmNy = 25; XmNlabelString = "Remplir les formes ?"; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNleftOffset = 10; XmNtopOffset = 380; XmNbackground = rgb(60000,60000,60000); }; }; object rbRemplissage: XmRadioBox { arguments { XmNorientation = XmHORIZONTAL; XmNx = 15; XmNy = 25; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNleftOffset = 20; XmNtopOffset = 395; XmNpacking = XmPACK_TIGHT; XmNbackground = rgb(60000,60000,60000); }; controls { XmToggleButton tbRemplissageOn; XmToggleButton tbRemplissageOff; }; }; object tbRemplissageOn: XmToggleButton { arguments { XmNlabelString = "Oui"; XmNindicatorType = XmONE_OF_MANY; XmNbackground = rgb(60000,60000,60000); }; callbacks { XmNarmCallback = procedure cbRemplissage(1); }; }; object tbRemplissageOff: XmToggleButton { arguments { XmNlabelString = "Non"; XmNindicatorType = XmONE_OF_MANY; XmNset = true; XmNbackground = rgb(60000,60000,60000); }; callbacks { XmNarmCallback = procedure cbRemplissage(0); }; }; ! Ensemble permettant d'indiquer si on veut contraindre les proportions (carre/cercles) ! ou pas (rectangles/elipses) object txtContraindre: XmLabel { arguments { XmNx = 15; XmNy = 25; XmNlabelString = "Bords egaux ?"; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNleftOffset = 10; XmNtopOffset = 335; XmNbackground = rgb(60000,60000,60000); }; }; object rbContraindre: XmRadioBox { arguments { XmNorientation = XmHORIZONTAL; XmNx = 15; XmNy = 25; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNleftOffset = 20; XmNtopOffset = 350; XmNpacking = XmPACK_TIGHT; XmNbackground = rgb(60000,60000,60000); }; controls { XmToggleButton tbContraindreOn; XmToggleButton tbContraindreOff; }; }; object tbContraindreOn: XmToggleButton { arguments { XmNlabelString = "Oui"; XmNindicatorType = XmONE_OF_MANY; XmNbackground = rgb(60000,60000,60000); }; callbacks { XmNarmCallback = procedure cbContraindre(1); }; }; object tbContraindreOff: XmToggleButton { arguments { XmNlabelString = "Non"; XmNindicatorType = XmONE_OF_MANY; XmNset = true; XmNbackground = rgb(60000,60000,60000); }; callbacks { XmNarmCallback = procedure cbContraindre(0); }; }; ! Reglage de l'epaisseur du trait object sEpaisseur: XmScale { arguments { XmNx = 15; XmNy = 25; XmNwidth = 130; XmNheight = 50; XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNleftOffset = 10; XmNtopOffset = 430; XmNminimum = 1; XmNmaximum = 10; XmNorientation = XmHORIZONTAL; XmNshowValue = true; XmNtitleString = "Epaisseur du trait"; XmNbackground = rgb(60000,60000,60000); }; callbacks { XmNdragCallback = procedure cbEpaisseur(); }; }; ! Boutons pour changer de couleur object dbBlanc: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 70; XmNheight = 70; XmNleftAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('blanc.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 160; XmNbottomOffset = 25; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbCouleur(BLANC); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbNoir: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 70; XmNheight = 70; XmNleftAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('noir.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 240; XmNbottomOffset = 25; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbCouleur(NOIR); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbJaune: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 70; XmNheight = 70; XmNleftAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('jaune.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 400; XmNbottomOffset = 25; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbCouleur(JAUNE); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbRouge: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 70; XmNheight = 70; XmNleftAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('rouge.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 480; XmNbottomOffset = 25; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbCouleur(ROUGE); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbVert: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 70; XmNheight = 70; XmNleftAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('vert.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 560; XmNbottomOffset = 25; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbCouleur(VERT); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; object dbBleu: XmDrawnButton { arguments { XmNx = 15; XmNy = 25; XmNwidth = 70; XmNheight = 70; XmNleftAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNbackgroundPixmap = xbitmapfile ('bleu.xpm'); XmNshadowType = XmSHADOW_OUT; XmNshadowThickness = 1; XmNleftOffset = 640; XmNbottomOffset = 25; XmNhighlightThickness = 0; }; callbacks { XmNactivateCallback = procedure cbCouleur(BLEU); XmNdisarmCallback = procedure cbMajPointeur(zoneDessin); }; }; end module;