rendered paste body! 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;