/****************************************************************************/
/*  Nom du fichier    : Spider.h                                            */
/*                                                                          */
/*  Auteur(s)         : Philippe Girardet, de l'Ecole d'ingenieurs du       */
/*                      canton de Vaud (eivd).                              */
/*                                                                          */
/*  A l'aide des                                                            */
/*  travaux de        : L.Righetti, G.Corba, P.Breguet, P.Girardet,         */
/*                      M.Salamin, A.Jossevel, H.Roethlisberger             */
/*                      de l'Ecole d'ingenieurs du canton de Vaud (eivd)    */
/*                                                                          */
/*  Version           : 3.0                                                 */
/*  Date de creation  : 31 mars 2000                                        */
/*                                                                          */
/*  But               : Mise a disposition de fonctions graphiques          */
/*                      minimale.                                           */
/*                                                                          */
/*                                                                          */
/*  Date de modif.    :                                                     */
/*  Raison            :                                                     */
/*                                                                          */
/*                                                                          */
/*  Modules appeles   : Dependant de l'implementation                       */
/*  Mat. particulier  : Dependant de l'implementation                       */
/*                                                                          */
/*  Compilation       : Dependant de l'implementation                       */
/*  Edition de liens  : Dependant de l'implementation                       */
/*                                                                          */
/****************************************************************************/


/* ATTENTION : Pour l'implementation UNIX (XWindows) plusieurs procedures   */
/*             ou fonctions de la librairie Spider envoient des requetes    */
/*             au serveur X actif, mais leur terminaison ne signifie pas    */
/*             que la ou les requêtes ont abouti.                           */

/* Remarque: Attention la barre de titre de la fenetre fait partie de la    */
/*           zone couverte par le systeme d'axes                            */

namespace Spider
{
  /*--------------------------------------------------------------------------*/
  /* Nom     : getMaxX                                                        */
  /* But     : Retourne la taille maximale de l'ecran graphique en X.         */
  /* Entrees : -                                                              */
  /* Sorties : - La taille maximale de l'ecran graphique en X.                */
  /*--------------------------------------------------------------------------*/
  extern "C" int getMaxX(void);

  /*--------------------------------------------------------------------------*/
  /* Nom     : getMaxY                                                        */
  /* But     : Retourne la taille maximale de l'ecran graphique en Y.         */
  /* Entrees : -                                                              */
  /* Sorties : - La taille maximale de l'ecran graphique en Y.                */
  /*--------------------------------------------------------------------------*/
  extern "C" int getMaxY(void);

  /*--------------------------------------------------------------------------*/
  /* Nom     : moveTo                                                         */
  /* But     : Placer le curseur a une position (absolue) de l'ecran.         */
  /* Entrees : - x : Nouvel position (absolue) du point en X dans l'ecran.    */
  /*           - y : Nouvel position (absolue) du point en Y dans l'ecran.    */
  /* Sorties : -                                                              */
  /*--------------------------------------------------------------------------*/
  extern "C" void moveTo(int x,int y);

  /*--------------------------------------------------------------------------*/
  /* Nom     : move                                                           */
  /* But     : Placer le curseur a une position en specifiant le deplacement  */
  /* Entrees : - dx : deplacement reltatif en X dans l'ecran.                 */
  /*           - dy : deplacement reltatif en Y dans l'ecran.                 */
  /* Sorties : -                                                              */
  /*--------------------------------------------------------------------------*/
  extern "C" void move(int dx,int dy);

  /*--------------------------------------------------------------------------*/
  /* Nom     : lineTo                                                         */
  /* But     : Dessiner une ligne du point(X1,Y1) au point (X2,Y2)            */
  /* Entrees : - x1: Position (absolue) initiale du segment en X dans l'ecran.*/
  /*           - y1: Position (absolue) initiale du segment en Y dans l'ecran.*/
  /*         : - x2: Position (absolue) finale du segment en X dans l'ecran.  */
  /*           - y2: Position (absolue) finale du segment en Y dans l'ecran.  */
  /* Sorties : -                                                              */
  /*--------------------------------------------------------------------------*/
  extern "C" void lineTo(int x1,int y1,int x2,int y2);

  /*--------------------------------------------------------------------------*/
  /* Nom     : line                                                           */
  /* But     : Dessiner une ligne de la position courante du curseur au point */
  /*           specifie en connaissant le deplacement DX,DY.                  */
  /* Entrees : - dx : deplacement relatif en X dans l'ecran.                  */
  /*           - dy : deplacement relatif en Y dans l'ecran.                  */
  /* Sorties : -                                                              */
  /* Remarque:                                                                */
  /*--------------------------------------------------------------------------*/
  extern "C" void line(int dx,int dy);

  /*--------------------------------------------------------------------------*/
  /* Nom     : clearWindow                                                    */
  /* But     : Efface l'ecran graphique.                                      */
  /*--------------------------------------------------------------------------*/
  extern "C" void clearWindow(void);

  /*--------------------------------------------------------------------------*/
  /* Nom     : initWindow                                                     */
  /* But     : Ouvre la fenetre graphique de l'application.                   */
  /* Entrees : - Le titre de la fenetre (apparait dans la barre de titre)     */
  /* Sorties : -                                                              */
  /*--------------------------------------------------------------------------*/
  extern "C" void initWindow(char *title);

  /*--------------------------------------------------------------------------*/
  /* Nom     : initWindow                                                     */
  /* But     : Ouvre la fenetre graphique de l'application.                   */
  /* Entrees : - Le titre de la fenetre (apparait dans la barre de titre)     */
  /*           - La largeur de la fenetre (parametre optionnel)               */
  /*           - La hauteur de la fenetre (parametre optionnel)               */
  /* Sorties : -                                                              */
  /*--------------------------------------------------------------------------*/
  extern "C" void initSizeWindow(char *title,int tailleX,int tailleY);

  /*--------------------------------------------------------------------------*/
  /* Nom     : closeWindow                                                    */
  /* But     : ferme la fenetre graphique.                                    */
  /* Entrees : -                                                              */
  /* Sorties : -                                                              */
  /*--------------------------------------------------------------------------*/
  extern "C" void closeWindow(void);
};

