home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / c / x_lib10 / xw.doc < prev    next >
Text File  |  1994-10-20  |  58KB  |  1,881 lines

  1. ════════════════════════════════════════════════════════════════════════════
  2. LE GESTIONNAIRE DE FENETRES
  3. ────────────────────────────────────────────────────────────────────────────
  4.  
  5. présentation
  6. ────────────
  7.  
  8.     Le gestionnaire de fenêtres offre un ensemble de services encapsulés
  9.     dans la classe XWinMgr et accessibles via son instance globale xw.
  10.  
  11.     La classe XWinMgr n'est constituée que de membres statiques et n'est pas
  12.     dérivable.
  13.  
  14.  
  15. construction du gestionnaire
  16. ────────────────────────────
  17.  
  18.     Le gestionnaire est construit automatiquement avant la fonction main()
  19.     grâce à son instance globale xw.
  20.  
  21.     Après sa construction, un appel à init() est nécessaire pour initialiser
  22.     le gestionnaire.
  23.  
  24.     Le gestionnaire ne doit être initialisé qu'après ceux de l'écran, du
  25.     clavier, de la souris et des événements.
  26.  
  27.  
  28. destruction du gestionnaire
  29. ───────────────────────────
  30.  
  31.     Le gestionnaire est détruit automatiquement en fin d'exécution.
  32.  
  33.     Avant sa destruction, un appel à init() est nécessaire pour quitter le
  34.     gestionnaire.
  35.  
  36.     Le gestionnaire ne ferme et ne supprime aucune fenêtre.
  37.  
  38.  
  39. classe de fenêtre XWin
  40. ──────────────────────
  41.  
  42.     La classe dérivable XWin encapsule les services de gestion individuelle
  43.     des fenêtres.
  44.  
  45.     Le constructeur de la classe XWin attend deux paramètres : la largeur et
  46.     la hauteur de la fenêtre.
  47.  
  48.     Une fenêtre a les caractéristiques suivantes :
  49.  
  50.             -- des dimensions fixées lors de sa construction,
  51.             -- des attributs d'affichage modifiables par defw(),
  52.             -- un type de fonctionnement modifiable par type(),
  53.             -- une palette de couleurs modifiable par cpal(),
  54.             -- un titre modifiable par head(),
  55.             -- une position modifiable par move(),
  56.             -- des objets d'interface ajoutés par link().
  57.  
  58.     A sa création, la fenêtre est centrée sur la hauteur et la largeur de
  59.     l'écran.
  60.  
  61.     Par défaut, la fenêtre utilise la palette de couleurs xa_dialog mais
  62.     peut se voir associer toute autre palette au format suivant :
  63.  
  64.             ╒═══════════════════════════════════════════════════════════╕
  65.             │   indice      utilisation                                 │
  66.             ├───────────────────────────────────────────────────────────┤
  67.             │     0         attribut du cadre - fenêtre non active      │
  68.             │     1         attribut du titre - fenêtre non active      │
  69.             │     2         attribut du cadre - fenêtre active          │
  70.             │     3         attribut du titre - fenêtre active          │
  71.             │     4         attribut de la zone client de la fenêtre    │
  72.             └───────────────────────────────────────────────────────────┘
  73.  
  74.     Le destructeur de la classe XWin se charge de fermer la fenêtre puis de
  75.     libérer la mémoire qu'elle et ses objets occupent.
  76.  
  77.     Pour éviter la fragmentation excessive de la mémoire, il est conseillé
  78.     de détruire les fenêtres dans l'ordre inverse de leur construction.
  79.  
  80.  
  81. affichage de la fenêtre
  82. ───────────────────────
  83.  
  84.     Les modifications des caractéristiques de la fenêtre et de ses objets
  85.     n'entraînent pas son réaffichage ; il appartient à l'application d'en
  86.     faire la demande.
  87.  
  88.     L'affichage de la fenêtre est réalisé par les fonctions :
  89.  
  90.             -- XWin::topw() pour ouvrir ou réactiver la fenêtre,
  91.             -- XWin::draw() pour dessiner la fenêtre,
  92.             -- XWin::draw(id1, id2) pour dessiner un groupe d'objets,
  93.             -- XWinMgr::sync() pour afficher un groupe de fenêtres.
  94.  
  95.     Les fonctions XWin::curr() et XWin::gray() actualise l'affichage si la
  96.     fenêtre concernée est active.
  97.  
  98.  
  99. interceptions des événements de fenêtres
  100. ────────────────────────────────────────
  101.  
  102.     Chaque fenêtre dispose de fonctions membres protégées et virtuelles lui
  103.     permettant d'assurer la gestion des événements qui se produisent durant
  104.     l'utilisation de XWinMgr::eval() et XWinMgr::exec().
  105.  
  106.     La fenêtre interceptant les événements suivants est toujours la fenêtre
  107.     active.
  108.  
  109.     L'objet obj est toujours l'objet courant de la fenêtre.
  110.  
  111.         void on_call (XObj *obj)
  112.         ────────────────────────
  113.         Le code associé à obj peut être exécuté.
  114.  
  115.         Il s'agit de la réponse à l'événement xe_CALL.
  116.  
  117.         Par défaut, on_call() est sans effet.
  118.  
  119.  
  120.         void on_char (int key)
  121.         ──────────────────────
  122.         Le caractère key ne correspond ni à un raccourci clavier, ni à une
  123.         touche gérée par l'objet courant de la fenêtre ni à une touche de
  124.         tabulation.
  125.  
  126.         Il s'agit d'une des réponses possibles à l'événement xe_CHAR.
  127.  
  128.         Par défaut, on_char() est sans effet.
  129.  
  130.  
  131.         void on_drag (void)
  132.         ───────────────────
  133.         La fenêtre vient d'être déplacée.
  134.  
  135.         Par défaut, on_drag() est sans effet.
  136.  
  137.  
  138.         void on_exec (void)
  139.         ───────────────────
  140.         La fenêtre vient d'être activée.
  141.  
  142.         Par défaut, on_exec() est sans effet.
  143.  
  144.  
  145.         void on_goto (XObj *obj)
  146.         ────────────────────────
  147.         obj devient l'objet courant de la fenêtre.
  148.  
  149.         Il s'agit de la réponse à l'événement xe_GOTO.
  150.  
  151.         Par défaut, on_goto() est sans effet.
  152.  
  153.  
  154.         int on_hide (XWin *win)
  155.         ────────────────────────
  156.         La fenêtre va cesser d'être active au profit de la fenêtre win.
  157.  
  158.         Si on_hide() renvoie une valeur non nulle, la fenêtre active peut
  159.         être remplacée par win. Dans le cas contraire, le remplacement est
  160.         refusé.
  161.  
  162.         Par défaut, on_hide() renvoie une valeur non nulle.
  163.  
  164.  
  165.         void on_lmou (int row, int col)
  166.         ───────────────────────────────
  167.         Un clic sur le bouton gauche de la souris a eu lieu sur la ligne row
  168.         et la colonne col à l'extérieur de la fenêtre.
  169.  
  170.         Le clic n'a pas permis de sélectionner une autre fenêtre, soit parce
  171.         que la fenêtre active est modale, soit parce que aucune fenêtre n'a
  172.         été ciblée.
  173.  
  174.         Il s'agit d'une des réponses possibles à l'événement xe_LMOU.
  175.  
  176.         Par défaut, on_lmou() est sans effet.
  177.  
  178.  
  179.         void on_lwin (int row, int col)
  180.         ───────────────────────────────
  181.         Un clic sur le bouton gauche de la souris a eu lieu à l'intérieur de
  182.         la fenêtre mais n'a pas eu pour effet de sélectionner un objet.
  183.  
  184.         Les coordonnées row et col sont absolues.
  185.  
  186.         Il s'agit d'une des réponses possibles à l'événement xe_LMOU.
  187.  
  188.         Par défaut, on_lwin() est sans effet.
  189.  
  190.  
  191.         int on_quit (XObj *obj)
  192.         ───────────────────────
  193.         obj va cesser d'être l'objet courant de la fenêtre.
  194.  
  195.         Si on_quit() renvoie une valeur non nulle, l'objet courant peut être
  196.         remplacé. Dans le cas contraire, le remplacement est refusé.
  197.  
  198.         Il s'agit de la réponse à l'événement xe_QUIT.
  199.  
  200.         Par défaut, on_quit() renvoie une valeur non nulle.
  201.  
  202.  
  203.         void on_rmou (int row, int col)
  204.         ───────────────────────────────
  205.         Un clic sur le bouton droit de la souris a eu lieu sur la ligne row
  206.         et la colonne col à l'extérieur de la fenêtre.
  207.  
  208.         La fonction XWinMgr::find() permet de retrouver la fenêtre ciblée
  209.         par les coordonnées absolues row et col.
  210.  
  211.         Il s'agit d'une des réponses possibles à l'événement xe_RMOU.
  212.  
  213.         Par défaut, on_rmou() est sans effet.
  214.  
  215.  
  216.         void on_rwin (int row, int col)
  217.         ───────────────────────────────
  218.         Un clic sur le bouton droit de la souris a eu lieu sur la ligne row
  219.         et la colonne col à l'intérieur de la fenêtre.
  220.  
  221.         La fonction XWin::find() permet de retrouver l'objet ciblé par les
  222.         coordonnées absolues row et col dans la fenêtre active.
  223.  
  224.         Il s'agit d'une des réponses possibles à l'événement xe_RMOU.
  225.  
  226.         Par défaut, on_rwin() est sans effet.
  227.  
  228.  
  229.         void on_user (XObj *obj, int val)
  230.         ─────────────────────────────────
  231.         obj prévient sa fenêtre propriétaire du changement intervenu val.
  232.  
  233.         Par défaut, on_user() est sans effet.
  234.  
  235.  
  236.         événements non gérés
  237.         ────────────────────
  238.         xe_IDLE et xe_MOVE.
  239.  
  240.  
  241.     Pour utiliser les fonctions membres spécifiques à chaque classe d'objet,
  242.     il faut effectuer un transtypage de l'objet vers le type voulu. La macro
  243.     xo() effectuer cette opération.
  244.  
  245.     La macro xo() s'utilise comme suit :
  246.  
  247.             xo(pointeur_générique, type_X) -> pointeur_sur_objet_X
  248.  
  249.  
  250. évaluation des événements en provenance du clavier
  251. ──────────────────────────────────────────────────
  252.  
  253.     Les événements du clavier sont évalués dans cet ordre :
  254.  
  255.             -- est-ce la touche de déplacement de fenêtre <shift-F1> ?
  256.  
  257.                 -- si fenêtre déplaçable : déplacement puis on_drag(),
  258.                 -- sinon : sans effet.
  259.  
  260.             -- est-ce la touche de sélection de fenêtre <alt-F1> ?
  261.  
  262.                 -- sélection d'une autre fenêtre si la fenêtre active est
  263.                    amodale et si on_hide() renvoie une valeur non nulle,
  264.                 -- sinon : sans effet.
  265.  
  266.             -- l'objet courant peut-il traiter cette touche ?
  267.  
  268.             -- est-ce une touche utilisée comme raccourci par un objet ?
  269.  
  270.                 -- si objet ciblé différent de l'objet courant :
  271.  
  272.                     -- si objet courant existe : événement xe_QUIT,
  273.                     -- événement xe_GOTO.
  274.  
  275.                 -- événement xe_CALL.
  276.  
  277.             -- est-ce une touche de tabulation ?
  278.  
  279.                 -- si objet ciblé différent de l'objet courant :
  280.  
  281.                     -- si objet courant existe : événement xe_QUIT,
  282.                     -- événement xe_GOTO.
  283.  
  284.                 -- sinon : sans effet.
  285.  
  286.             -- sinon envoi de la touche à la fenêtre par on_char().
  287.  
  288.  
  289. index des fonctions
  290. ───────────────────
  291.  
  292.     ╒═══════════════════════════════════════════════════════════════════╕
  293.     │   fonction    utilisation                                         │
  294.     ├───────────────────────────────────────────────────────────────────┤
  295.     │<<XWinMgr...>>                                                     │
  296.     │   desk        affiche le bureau                                   │
  297.     │   desk        modifie le motif du bureau                          │
  298.     │   eval        évalue un événement                                 │
  299.     │   exec        exécute une fenêtre en mode modal                   │
  300.     │   find        recherche une fenêtre selon des coordonnées         │
  301.     │   full        initialise ou quitte tous les gestionnaires         │
  302.     │   halt        quitte l'application par manque de mémoire          │
  303.     │   init        initialise ou quitte le gestionnaire                │
  304.     │   root        renvoie l'adresse de la première fenêtre ouverte    │
  305.     │   sync        affiche toutes les fenêtres ouvertes                │
  306.     │   topw        renvoie l'adresse de la fenêtre active              │
  307.     ├───────────────────────────────────────────────────────────────────┤
  308.     │<<XWinMgr...>>                                                     │
  309.     │   ok          boîte de dialogue Ok                                │
  310.     │   msg         boîte de message                                    │
  311.     │   pop         menu pop-up                                         │
  312.     │   yes         boîte de dialogue Oui/Non                           │
  313.     ├───────────────────────────────────────────────────────────────────┤
  314.     │<<XWin...>>                                                        │
  315.     │   addr        recherche un objet selon un identificateur          │
  316.     │   cell        vérifie l'inclusion d'une cellule dans la fenêtre   │
  317.     │   cpal        renvoie l'adresse de la palette de couleurs         │
  318.     │   cpal        remplace la palette de couleurs de la fenêtre       │
  319.     │   ccur        renvoie l'adresse de l'objet courant de la fenêtre  │
  320.     │   ccur        remplace l'objet courant de la fenêtre              │
  321.     │   defw        renvoie la définition de la fenêtre                 │
  322.     │   defw        modifie la définition de la fenêtre                 │
  323.     │   drag        déplace la fenêtre en mode interactif               │
  324.     │   draw        dessine la fenêtre                                  │
  325.     │   draw        dessine un groupe d'objets                          │
  326.     │   find        recherche un objet selon un raccourci clavier       │
  327.     │   find        recherche un objet selon des coordonnées            │
  328.     │   gray        vérifie la validité d'un objet                      │
  329.     │   gray        invalide un groupe d'objets                         │
  330.     │   head        renvoie l'adresse du titre de la fenêtre            │
  331.     │   head        remplace le titre de la fenêtre                     │
  332.     │   hide        ferme la fenêtre                                    │
  333.     │   link        ajoute un objet dans la fenêtre                     │
  334.     │   move        déplace la fenêtre                                  │
  335.     │   next        renvoie l'adresse de la fenêtre ouverte suivante    │
  336.     │   prev        renvoie l'adresse de la fenêtre ouverte précédente  │
  337.     │   rect        renvoie les coordonnées et dimensions de la fenêtre │
  338.     │   retn        renvoie la valeur de retour de la fenêtre           │
  339.     │   retn        remplace la valeur de retour de la fenêtre          │
  340.     │   stat        renvoie l'état courant de la fenêtre                │
  341.     │   topw        ouvre la fenêtre                                    │
  342.     │   type        renvoie le type de la fenêtre                       │
  343.     │   type        modifie le type de la fenêtre                       │
  344.     ├───────────────────────────────────────────────────────────────────┤
  345.     │   <<XObj...>                                                      │
  346.     │   cell        vérifie l'inclusion d'une cellule dans l'objet      │
  347.     │   draw        dessine l'objet                                     │
  348.     │   gray        vérifie la validité de l'objet                      │
  349.     │   gray        invalide un objet                                   │
  350.     │   id          renvoie l'identificateur de l'objet                 │
  351.     │   next        renvoie le successeur de l'objet                    │
  352.     │   prev        renvoie le prédécesseur de l'objet                  │
  353.     │   pwin        renvoie l'adresse de la fenêtre propriétaire        │
  354.     │   rect        renvoie les coordonnées et dimensions de l'objet    │
  355.     │   stat        renvoie l'état de la fenêtre propriétaire           │
  356.     │   topw        vérifie l'activité de la fenêtre propriétaire       │
  357.     │   type        renvoie le type de l'objet                          │
  358.     └───────────────────────────────────────────────────────────────────┘
  359.  
  360.  
  361. ════════════════════════════════════════════════════════════════════════════
  362. XWinMgr::desk                                                  public:static
  363. affiche le bureau
  364. ────────────────────────────────────────────────────────────────────────────
  365.  
  366. utilisation
  367.  
  368.     void    desk (void)
  369.  
  370. description
  371.  
  372.     desk() affiche le bureau servant de fond aux fenêtres.
  373.  
  374. voir aussi
  375.  
  376.     XWinMgr::sync()
  377.  
  378.  
  379. ════════════════════════════════════════════════════════════════════════════
  380. XWinMgr::desk                                                  public:static
  381. modifie le motif du bureau
  382. ────────────────────────────────────────────────────────────────────────────
  383.  
  384. utilisation
  385.  
  386.     void    desk (char chr, char att)
  387.  
  388. paramètres
  389.  
  390.     chr     caractère
  391.     att     attribut
  392.  
  393. description
  394.  
  395.     desk() modifie le motif du bureau en le remplaçant par le caractère chr
  396.     et l'attribut att.
  397.  
  398.     La modification n'est faite que si le paramètre correspondant n'est pas
  399.     nul.
  400.  
  401.     Par défaut, le motif de remplissage du bureau est formé par le pavé gris
  402.     (176) et un attribut qui est bleu/gris si l'écran supporte la couleur et
  403.     noir/gris dans le cas contraire.
  404.  
  405.     desk() ne redessine pas automatiquement le bureau.
  406.  
  407. voir aussi
  408.  
  409.     XWinMgr::desk()
  410.  
  411.  
  412. ════════════════════════════════════════════════════════════════════════════
  413. XWinMgr::eval                                                  public:static
  414. évalue un événement
  415. ────────────────────────────────────────────────────────────────────────────
  416.  
  417. utilisation
  418.  
  419.     XWin *  eval (XEvn& evn)
  420.  
  421. paramètres
  422.  
  423.     evn     référence de XEvn
  424.  
  425. assertions
  426.  
  427.     evn     != 0
  428.  
  429. description
  430.  
  431.     eval() évalue l'événement evn en fonction des fenêtres ouvertes.
  432.  
  433.     L'état de la fenêtre active passe de xw_TOPW à xw_EXEC.
  434.  
  435.     eval() est sans effet si aucune fenêtre n'est ouverte.
  436.  
  437.     eval() renvoie l'adresse de la fenêtre active après évaluation de evn ou
  438.     0 si aucune fenêtre n'est ouverte ; dans ce cas, evn n'est pas évalué.
  439.  
  440. voir aussi
  441.  
  442.     XWinMgr::topw(), XWin::stat(), XWin::topw()
  443.  
  444.  
  445. ════════════════════════════════════════════════════════════════════════════
  446. XWinMgr::exec                                                  public:static
  447. exécute une fenêtre en mode modal
  448. ────────────────────────────────────────────────────────────────────────────
  449.  
  450. utilisation
  451.  
  452.     int     exec (XWin *win)
  453.  
  454. paramètres
  455.  
  456.     win     pointeur sur fenêtre
  457.  
  458. assertions
  459.  
  460.     win     != 0
  461.  
  462. description
  463.  
  464.     exec() ouvre la fenêtre win et l'exécute en mode modal.
  465.  
  466.     exec() évalue tous les événements à destination de la fenêtre win et
  467.     prend fin lorsqu'elle cesse d'être la fenêtre active. exec() renvoie
  468.     alors la valeur choisie par la fenêtre en fin d'exécution.
  469.  
  470.     Les fonctions membres permettant de fermer la fenêtre doivent s'assurer
  471.     de la validité de la valeur de retour.
  472.  
  473. voir aussi
  474.  
  475.     XWinMgr::eval(), XWinMgr::topw(), XWin::retn()
  476.  
  477.  
  478. ════════════════════════════════════════════════════════════════════════════
  479. XWinMgr::find                                                  public:static
  480. recherche une fenêtre selon des coordonnées
  481. ────────────────────────────────────────────────────────────────────────────
  482.  
  483. utilisation
  484.  
  485.     XWin *  find (int row, int col)
  486.  
  487. paramètres
  488.  
  489.     row     numéro de ligne
  490.     col     numéro de colonne
  491.  
  492. description
  493.  
  494.     find() renvoie l'adresse de la fenêtre contenant la cellule située sur
  495.     la ligne row et la colonne col.
  496.  
  497.     La recherche débute par la fenêtre active et remonte jusque la première
  498.     fenêtre ouverte.
  499.  
  500.     find() renvoie 0 si aucune fenêtre ne contient la cellule.
  501.  
  502.  
  503. ════════════════════════════════════════════════════════════════════════════
  504. XWinMgr::full                                                  public:static
  505. initialise ou quitte tous les gestionnaires
  506. ────────────────────────────────────────────────────────────────────────────
  507.  
  508. utilisation
  509.  
  510.     void    full (int cmd)
  511.  
  512. paramètres
  513.  
  514.     cmd     commande d'initialisation
  515.  
  516. description
  517.  
  518.     full() initialise ou quitte tous les gestionnaires.
  519.  
  520.     Si cmd est non nul, init() initialise les gestionnaires dans cet ordre :
  521.  
  522.             -- gestionnaire d'écran par XScrMgr::init(),
  523.             -- gestionnaire de clavier par XKeyMgr::init(),
  524.             -- gestionnaire de souris par XMouMgr::init(),
  525.             -- gestionnaire d'événements par XEvnMgr::init(),
  526.             -- gestionnaire de fenêtres par XWinMgr:init().
  527.  
  528.     Si cmd est nul, init() quitte les gestionnaires dans l'ordre inverse de
  529.     leur initialisation.
  530.  
  531.     Le bureau n'est pas automatiquement affiché.
  532.  
  533. voir aussi
  534.  
  535.     XWinMgr::desk(), XWinMgr::init(), XKeyMgr::init(), XMouMgr::init()
  536.     XEvnMgr::init(), XScrMgr::init()
  537.  
  538.  
  539. ════════════════════════════════════════════════════════════════════════════
  540. XWinMgr::halt                                                  public:static
  541. quitte l'application par manque de mémoire
  542. ────────────────────────────────────────────────────────────────────────────
  543.  
  544. utilisation
  545.  
  546.     void    halt (void)
  547.  
  548. description
  549.  
  550.     halt() quitte l'application en cas d'insuffisance de mémoire.
  551.  
  552.     halt() est appelée par la fonction XWin::link() et par les constructeurs
  553.     d'objets.
  554.  
  555.     Par défaut, halt() appele la fonction standard abort() mais peut être
  556.     redéfinie à condition de mettre fin à l'application.
  557.  
  558. voir aussi
  559.  
  560.     XWin::link()
  561.  
  562.  
  563. ════════════════════════════════════════════════════════════════════════════
  564. XWinMgr::init                                                  public:static
  565. initialise ou quitte le gestionnaire
  566. ────────────────────────────────────────────────────────────────────────────
  567.  
  568. utilisation
  569.  
  570.     void    init (int cmd)
  571.  
  572. paramètres
  573.  
  574.     cmd     commande d'initialisation
  575.  
  576. description
  577.  
  578.     init() initialise ou quitte le gestionnaire.
  579.  
  580.     Si cmd est non nul, init() initialise le gestionnaire par les étapes :
  581.  
  582.             -- choix du motif et de la couleur du bureau.
  583.  
  584.     Si cmd est nul, init() quitte le gestionnaire sans fermer les fenêtres
  585.     encore ouvertes.
  586.  
  587.     Le bureau n'est pas automatiquement affiché.
  588.  
  589.     init() est sans effet si l'état demandé est déjà celui du gestionnaire.
  590.  
  591. voir aussi
  592.  
  593.     XWinMgr::desk()
  594.  
  595.  
  596. ════════════════════════════════════════════════════════════════════════════
  597. XWinMgr::ok                                                    public:static
  598. boîte de dialogue Ok
  599. ────────────────────────────────────────────────────────────────────────────
  600.  
  601. utilisation
  602.  
  603.     void    ok (const char *hdr, const char *msg)
  604.  
  605. paramètres
  606.  
  607.     hdr     pointeur sur titre de la fenêtre
  608.     msg     pointeur sur message
  609.  
  610. assertions
  611.  
  612.     msg     != 0
  613.  
  614. description
  615.  
  616.     ok() crée et affiche une boîte de dialogue dotée d'un bouton Ok et d'une
  617.     zone de texte contenant le message msg.
  618.  
  619.     La fenêtre créée par ok() est déplaçable et amodale. Elle dispose d'un
  620.     titre si hdr est non nul.
  621.  
  622.     ok() détruit automatiquement la fenêtre.
  623.  
  624.  
  625. ════════════════════════════════════════════════════════════════════════════
  626. XWinMgr::msg                                                   public:static
  627. boîte de message
  628. ────────────────────────────────────────────────────────────────────────────
  629.  
  630. utilisation
  631.  
  632.     XWin *  msg (const char *hdr, const char *msg)
  633.  
  634. paramètres
  635.  
  636.     hdr     pointeur sur titre de la fenêtre
  637.     msg     pointeur sur message
  638.  
  639. assertions
  640.  
  641.     msg     != 0
  642.  
  643. description
  644.  
  645.     msg() crée et affiche une boîte de dialogue dotée d'une zone de texte
  646.     contenant le message msg.
  647.  
  648.     La fenêtre créée par msg() est déplaçable et amodale. Elle dispose d'un
  649.     titre si hdr est non nul.
  650.  
  651.     msg() renvoie un pointeur sur la fenêtre créée ; le programme appelant a
  652.     la charge de sa destruction.
  653.  
  654.  
  655. ════════════════════════════════════════════════════════════════════════════
  656. XWinMgr::pop                                                   public:static
  657. menu pop-up
  658. ────────────────────────────────────────────────────────────────────────────
  659.  
  660. utilisation
  661.  
  662.     int     pop (const char *hdr, XOpt *opt, int out)
  663.  
  664. paramètres
  665.  
  666.     hdr     pointeur sur titre de la fenêtre
  667.     opt     pointeur sur tableau d'options XOpt
  668.     out     indicateur de menu pseudo-modal
  669.  
  670. assertions
  671.  
  672.     opt     != 0
  673.  
  674. description
  675.  
  676.     pop() crée et affiche un menu pop-up contenant les options désignées
  677.     dans le tableau adressé par opt.
  678.  
  679.     La fenêtre créée par pop() est déplaçable et amodale. Elle dispose d'un
  680.     titre si hdr est non nul.
  681.  
  682.     pop() détruit la fenêtre et renvoie l'identificateur de l'option ou 0 en
  683.     cas d'abandon (par la touche <escape> ou par un clic de souris hors du
  684.     menu si out est non nul).
  685.  
  686.  
  687. ════════════════════════════════════════════════════════════════════════════
  688. XWinMgr::root                                                  public:static
  689. renvoie l'adresse de la première fenêtre ouverte
  690. ────────────────────────────────────────────────────────────────────────────
  691.  
  692. utilisation
  693.  
  694.     XWin *  root (void)
  695.  
  696. description
  697.  
  698.     root() renvoie l'adresse de la première fenêtre ouverte.
  699.  
  700.     root() renvoie 0 si aucune fenêtre n'est ouverte.
  701.  
  702. voir aussi
  703.  
  704.     XWinMgr::topw()
  705.  
  706.  
  707. ════════════════════════════════════════════════════════════════════════════
  708. XWinMgr::sync                                                  public:static
  709. redessine les fenêtres ouvertes
  710. ────────────────────────────────────────────────────────────────────────────
  711.  
  712. utilisation
  713.  
  714.     void    sync (XWin *win)
  715.  
  716. paramètres
  717.  
  718.     win     pointeur sur fenêtre
  719.  
  720. assertions
  721.  
  722.     win     nul ou pointeur sur fenêtre ouverte
  723.  
  724. description
  725.  
  726.     sync() redessine les fenêtres ouvertes.
  727.  
  728.     Si win est nul, sync() redessine le bureau puis toutes les fenêtres
  729.     ouvertes.
  730.  
  731.     Si win est non nul, sync() ne redessine que les fenêtres débutant par
  732.     win sans afficher le bureau.
  733.  
  734. voir aussi
  735.  
  736.     XWinMgr::desk()
  737.  
  738.  
  739. ════════════════════════════════════════════════════════════════════════════
  740. XWinMgr::topw                                                  public:static
  741. renvoie l'adresse de la fenêtre active
  742. ────────────────────────────────────────────────────────────────────────────
  743.  
  744. utilisation
  745.  
  746.     XWin *  topw (void)
  747.  
  748. description
  749.  
  750.     topw() renvoie l'adresse de la fenêtre active.
  751.  
  752.     topw() renvoie 0 si aucune fenêtre n'est ouverte.
  753.  
  754. voir aussi
  755.  
  756.     XWinMgr::root()
  757.  
  758.  
  759. ════════════════════════════════════════════════════════════════════════════
  760. XWinMgr::yes                                                   public:static
  761. boîte de dialogue Oui/Non
  762. ────────────────────────────────────────────────────────────────────────────
  763.  
  764. utilisation
  765.  
  766.     int     yes (const char *hdr, const char *msg)
  767.  
  768. paramètres
  769.  
  770.     hdr     pointeur sur titre de la fenêtre
  771.     msg     pointeur sur message
  772.  
  773. assertions
  774.  
  775.     msg     != 0
  776.  
  777. description
  778.  
  779.     yes() crée et affiche une boîte de dialogue dotée des boutons Oui et Non
  780.     et d'une zone de texte contenant le message msg.
  781.  
  782.     La fenêtre créée par yes() est déplaçable et amodale. Elle dispose d'un
  783.     titre si hdr est non nul.
  784.  
  785.     yes() détruit automatiquement la fenêtre et renvoie une valeur non nulle
  786.     si le bouton Oui est utilisé ou 0 s'il s'agit du bouton Non.
  787.  
  788.  
  789. ════════════════════════════════════════════════════════════════════════════
  790. XWin::addr                                                            public
  791. recherche un objet selon son identificateur
  792. ────────────────────────────────────────────────────────────────────────────
  793.  
  794. utilisation
  795.  
  796.     XObj *  addr (int id)
  797.  
  798. paramètres
  799.  
  800.     id      identificateur d'objet
  801.  
  802. description
  803.  
  804.     addr() recherche l'objet de la fenêtre ayant l'identificateur id.
  805.  
  806.     addr() débute la recherche par le premier objet ajouté dans la fenêtre
  807.     et termine par le dernier.
  808.  
  809.     addr() renvoie l'adresse de l'objet ou 0 si aucun objet de la fenêtre
  810.     n'est concerné.
  811.  
  812.  
  813. ════════════════════════════════════════════════════════════════════════════
  814. XWin::cell                                                            public
  815. vérifie l'inclusion d'une cellule dans la fenêtre
  816. ────────────────────────────────────────────────────────────────────────────
  817.  
  818. utilisation
  819.  
  820.     int     cell (int row, int col)
  821.  
  822. paramètres
  823.  
  824.     row     numéro de ligne
  825.     col     numéro de colonne
  826.  
  827. description
  828.  
  829.     cell() vérifie l'inclusion de la cellule située sur la ligne row et la
  830.     colonne col dans la fenêtre.
  831.  
  832.     cell() renvoie 0 si la cellule n'est pas incluse dans la fenêtre et une
  833.     valeur non nulle dans le cas contraire.
  834.  
  835.  
  836. ════════════════════════════════════════════════════════════════════════════
  837. XWin::cpal                                                            public
  838. renvoie l'adresse de la palette de couleurs                              1/2
  839. ────────────────────────────────────────────────────────────────────────────
  840.  
  841. utilisation
  842.  
  843.     char *  cpal (void)
  844.  
  845. description
  846.  
  847.     cpal() renvoie l'adresse de la palette de couleurs de la fenêtre.
  848.  
  849. voir aussi
  850.  
  851.     XWin::cpal()
  852.  
  853.  
  854. ════════════════════════════════════════════════════════════════════════════
  855. XWin::cpal                                                            public
  856. remplace la palette de couleurs de la fenêtre                            2/2
  857. ────────────────────────────────────────────────────────────────────────────
  858.  
  859. utilisation
  860.  
  861.     void    cpal (char *pal)
  862.  
  863. paramètres
  864.  
  865.     pal     pointeur sur palette de couleurs
  866.  
  867. assertions
  868.  
  869.     pal     != 0
  870.  
  871. description
  872.  
  873.     cpal() remplace la palette de couleurs de la fenêtre par pal.
  874.  
  875.     cpal() n'actualise pas l'affichage.
  876.  
  877. voir aussi
  878.  
  879.     XWin::cpal(), XWin::draw(), XWin::topw(), XWinMgr::sync()
  880.  
  881.  
  882. ════════════════════════════════════════════════════════════════════════════
  883. XWin::ccur                                                            public
  884. renvoie l'adresse de l'objet courant de la fenêtre                       1/2
  885. ────────────────────────────────────────────────────────────────────────────
  886.  
  887. utilisation
  888.  
  889.     XObj *  ccur (void)
  890.  
  891. description
  892.  
  893.     ccur() renvoie l'adresse de l'objet courant de la fenêtre.
  894.  
  895.     ccur() renvoie l'adresse de l'objet ou 0 si la fenêtre ne possède pas
  896.     d'objet courant.
  897.  
  898.  
  899. ════════════════════════════════════════════════════════════════════════════
  900. XWin::ccur                                                            public
  901. remplace l'objet courant de la fenêtre                                   2/2
  902. ────────────────────────────────────────────────────────────────────────────
  903.  
  904. utilisation
  905.  
  906.     void    curr (int id)
  907.  
  908. paramètres
  909.  
  910.     id      identificateur d'objet
  911.  
  912. description
  913.  
  914.     curr() remplace l'objet courant de la fenêtre par celui qui est associé
  915.     à l'identificateur id.
  916.  
  917.     curr() est sans effet si l'objet id n'existe pas dans la fenêtre ou s'il
  918.     n'est pas sélectionnable à ce moment.
  919.  
  920.     Si la fenêtre est en cours d'exécution, curr() déclenche l'événement
  921.     xe_GOTO sans jamais le précéder de l'événement xe_QUIT.
  922.  
  923.     curr() met à jour l'affichage si la fenêtre est active.
  924.  
  925. voir aussi
  926.  
  927.     curr()
  928.  
  929.  
  930. ════════════════════════════════════════════════════════════════════════════
  931. XWin::defw                                                            public
  932. renvoie la définition de la fenêtre                                      1/2
  933. ────────────────────────────────────────────────────────────────────────────
  934.  
  935. utilisation
  936.  
  937.     int     defw (void)
  938.  
  939. description
  940.  
  941.     defw() renvoie la définition de la fenêtre telle qu'elle a été choisie
  942.     lors de sa construction ou du dernier appel à defw().
  943.  
  944. voir aussi
  945.  
  946.     XWin::defw(), XWin::drag()
  947.  
  948.  
  949. ════════════════════════════════════════════════════════════════════════════
  950. XWin::defw                                                            public
  951. modifie la définition de la fenêtre                                      2/2
  952. ────────────────────────────────────────────────────────────────────────────
  953.  
  954. utilisation
  955.  
  956.     void    defw (int def)
  957.  
  958. paramètres
  959.  
  960.     def     définition
  961.  
  962. assertions
  963.  
  964.     def     définition valide
  965.  
  966. description
  967.  
  968.     defw() remplace la définition de la fenêtre par def.
  969.  
  970.     defw() ne doit être utilisée que lors de la construction de la fenêtre.
  971.  
  972.     def est une combinaison des constantes suivantes :
  973.  
  974.             ╒═══════════════════════════════════════════════════════════╕
  975.             │   constante   utilisation                             déf │
  976.             ├───────────────────────────────────────────────────────────┤
  977.             │   xw_FRAME    fenêtre avec cadre                       *  │
  978.             │   xw_HEADER   fenêtre avec bandeau de titre            *  │
  979.             │   xw_CLIENT   fenêtre avec zone client                 *  │
  980.             │   xw_SHADOW   fenêtre avec ombre                       *  │
  981.             │   xw_MODAL    fenêtre modale                           *  │
  982.             │   xw_DRAG     fenêtre déplaçable                       *  │
  983.             │   xw_STDWIN   toutes les constantes ci-énoncées        *  │
  984.             └───────────────────────────────────────────────────────────┘
  985.  
  986.     Avec l'attribut xw_FRAME, un cadre est tracé autour de la fenêtre avec
  987.     un filet double si la fenêtre est active et simple dans l'autre cas.
  988.  
  989.     Avec l'attribut xw_HEADER, un titre optionnel est affiché au centre du
  990.     bord supérieur de la fenêtre. Cet attribut est indépendant de xw_FRAME.
  991.  
  992.     Avec l'attribut xw_CLIENT, l'intérieur de la fenêtre correspondant à sa
  993.     zone client est effacé lors de son ouverture.
  994.  
  995.     Avec l'attibut xw_MODAL, la sélection d'une autre fenêtre se fait en
  996.     cliquant sur celle-ci ou en utilisant la touche <alt-F1>.
  997.  
  998.     Avec l'attribut xw_DRAG, le déplacement de la fenêtre se fait en :
  999.  
  1000.             -- cliquant sur son bord supérieur et en maintenant le bouton
  1001.                enfoncé pendant le déplacement,
  1002.  
  1003.             -- utilisant la touche <shift-F1> puis les touches de direction.
  1004.  
  1005.     defw() n'actualise pas l'affichage.
  1006.  
  1007. voir aussi
  1008.  
  1009.     XWin::defw()
  1010.  
  1011.  
  1012. ════════════════════════════════════════════════════════════════════════════
  1013. XWin::drag                                                            public
  1014. déplace la fenêtre en mode interactif
  1015. ────────────────────────────────────────────────────────────────────────────
  1016.  
  1017. utilisation
  1018.  
  1019.     void    drag (void)
  1020.  
  1021. assertions
  1022.  
  1023.     this    pointeur sur fenêtre active
  1024.  
  1025. description
  1026.  
  1027.     drag() déplace la fenêtre et ses objets avec la souris ou le clavier.
  1028.  
  1029.     La souris est seule utilisée pour le déplacement de la fenêtre si un de
  1030.     ses boutons est enfoncé au moment de l'appel à drag(). Le clavier sera
  1031.     utilisé dans le cas contraire.
  1032.  
  1033.     drag() reconnaît quatre touches de déplacement et toute autre met fin à
  1034.     l'opération :
  1035.  
  1036.             ╒═══════════════════════════════════════════════════════════╕
  1037.             │   touches     utilisation                                 │
  1038.             ├───────────────────────────────────────────────────────────┤
  1039.             │   <up>        déplacement d'une ligne vers le haut        │
  1040.             │   <down>      déplacement d'une ligne vers le bas         │
  1041.             │   <left>      déplacement d'une colonne vers la gauche    │
  1042.             │   <right>     déplacement d'une colonne vers la droite    │
  1043.             └───────────────────────────────────────────────────────────┘
  1044.  
  1045.     drag() peut déplacer une fenêtre n'ayant pas l'attribut xw_DRAG.
  1046.  
  1047. voir aussi
  1048.  
  1049.     XWin::defw(), XWin::move(), XWin::stat()
  1050.  
  1051.  
  1052. ════════════════════════════════════════════════════════════════════════════
  1053. XWin::draw                                                            public
  1054. dessine la fenêtre                                                       1/2
  1055. ────────────────────────────────────────────────────────────────────────────
  1056.  
  1057. utilisation
  1058.  
  1059.     void    draw (void)
  1060.  
  1061. description
  1062.  
  1063.     draw() dessine la fenêtre et tous les objets qu'elle contient.
  1064.  
  1065.     draw() dessine les objets dans l'ordre de leur ajout.
  1066.  
  1067.     draw() doit être utilisé avec précaution car elle ne vérifie pas l'état
  1068.     de la fenêtre qui peut être fermée ou n'être pas la fenêtre active.
  1069.  
  1070. voir aussi
  1071.  
  1072.     XWin::link(), XWin::topw(), XWinMgr::sync()
  1073.  
  1074.  
  1075. ════════════════════════════════════════════════════════════════════════════
  1076. XWin::draw                                                            public
  1077. dessine un groupe d'objets                                               2/2
  1078. ────────────────────────────────────────────────────────────────────────────
  1079.  
  1080. utilisation
  1081.  
  1082.     void    draw (int id1, int id2)
  1083.  
  1084. paramètres
  1085.  
  1086.     id1     identificateur du premier objet
  1087.     id2     identificateur du dernier objet
  1088.  
  1089. description
  1090.  
  1091.     draw() dessine le groupe d'objets de la fenêtre en débutant id1 et en
  1092.     terminant par id2.
  1093.  
  1094.     draw() est sans effet si id1 n'existe pas dans la fenêtre.
  1095.  
  1096.     draw() termine l'affichage par l'objet id2 ou par le dernier objet de la
  1097.     fenêtre si id2 n'est pas rencontré.
  1098.  
  1099.     draw() doit être utilisé avec précaution car elle ne vérifie pas l'état
  1100.     de la fenêtre qui peut être fermée ou n'être pas la fenêtre active.
  1101.  
  1102. voir aussi
  1103.  
  1104.     XWin::draw(), XWin::topw(), XWinMgr::sync()
  1105.  
  1106.  
  1107. ════════════════════════════════════════════════════════════════════════════
  1108. XWin::find                                                            public
  1109. recherche un objet selon un raccourci clavier                            1/2
  1110. ────────────────────────────────────────────────────────────────────────────
  1111.  
  1112. utilisation
  1113.  
  1114.     XObj *  find (int key)
  1115.  
  1116. paramètres
  1117.  
  1118.     key     raccourci clavier
  1119.  
  1120. assertions
  1121.  
  1122.     key     != 0
  1123.  
  1124. description
  1125.  
  1126.     find() recherche l'objet de la fenêtre utilisant le raccourci clavier
  1127.     key et qui est sélectionnable par clavier.
  1128.  
  1129.     find() débute la recherche par le premier objet ajouté dans la fenêtre
  1130.     et termine par le dernier.
  1131.  
  1132.     find() renvoie l'adresse de objet ou 0 si aucun objet n'est concerné.
  1133.  
  1134.  
  1135. ════════════════════════════════════════════════════════════════════════════
  1136. XWin::find                                                            public
  1137. recherche un objet selon des coordonnées                                 2/2
  1138. ────────────────────────────────────────────────────────────────────────────
  1139.  
  1140. utilisation
  1141.  
  1142.     XObj *  find (int row, int col)
  1143.  
  1144. paramètres
  1145.  
  1146.     row     numéro de ligne
  1147.     col     numéro de colonne
  1148.  
  1149. description
  1150.  
  1151.     find() recherche l'objet de la fenêtre incluant la cellule située sur la
  1152.     ligne row et la colonne col et qui est sélectionnable par la souris.
  1153.  
  1154.     find() débute la recherche par le dernier objet ajouté dans la fenêtre
  1155.     et remonte ainsi jusqu'au premier.
  1156.  
  1157.     find() renvoie l'adresse de objet ou 0 si aucun objet n'est concerné.
  1158.  
  1159.  
  1160. ════════════════════════════════════════════════════════════════════════════
  1161. XWin::gray                                                            public
  1162. vérifie la validité d'un objet                                           1/2
  1163. ────────────────────────────────────────────────────────────────────────────
  1164.  
  1165. utilisation
  1166.  
  1167.     int     gray (int idt)
  1168.  
  1169. paramètres
  1170.  
  1171.     idt     identificateur d'objet
  1172.  
  1173. assertions
  1174.  
  1175.     idt     identificateur valide
  1176.  
  1177. description
  1178.  
  1179.     gray() vérifie la validité de l'objet idt de la fenêtre.
  1180.  
  1181.     gray() renvoie 0 si l'objet est accessible et une valeur non nulle dans
  1182.     le cas contraire.
  1183.  
  1184. voir aussi
  1185.  
  1186.     XWin::gray(), XObj::gray()
  1187.  
  1188.  
  1189. ════════════════════════════════════════════════════════════════════════════
  1190. XWin::gray                                                            public
  1191. invalide un groupe d'objets                                              2/2
  1192. ────────────────────────────────────────────────────────────────────────────
  1193.  
  1194. utilisation
  1195.  
  1196.     void    gray (int id1, int id2, int cmd)
  1197.  
  1198. paramètres
  1199.  
  1200.     id1     identificateur du premier objet
  1201.     id2     identificateur du dernier objet
  1202.     cmd     commande d'invalidation
  1203.  
  1204. description
  1205.  
  1206.     gray() invalide ou autorise l'accès au groupe d'objets de la fenêtre
  1207.     débutant par id1 et terminant par id2.
  1208.  
  1209.     Si cmd est non nul, gray() interdit l'accès aux objets du groupe. Dans
  1210.     le cas contraire, il en autorise l'accès.
  1211.  
  1212.     gray() est sans effet si id1 n'existe pas dans la fenêtre.
  1213.  
  1214.     gray() termine l'opération par l'objet id2 ou, à défaut, par le dernier
  1215.     objet de la fenêtre.
  1216.  
  1217.     gray() accepte l'invalidation de l'objet courant de la fenêtre ; il faut
  1218.     donc déplacer la sélection avant l'opération.
  1219.  
  1220.     gray() met à jour l'affichage si la fenêtre est active.
  1221.  
  1222. voir aussi
  1223.  
  1224.     XWin::draw(), XWin::topw(), XWinMgr::sync(), XObj::gray()
  1225.  
  1226.  
  1227. ════════════════════════════════════════════════════════════════════════════
  1228. XWin::head                                                            public
  1229. renvoie l'adresse du titre de la fenêtre                                 1/2
  1230. ────────────────────────────────────────────────────────────────────────────
  1231.  
  1232. utilisation
  1233.  
  1234.     char *  head (void)
  1235.  
  1236. description
  1237.  
  1238.     head() renvoie l'adresse du titre de la fenêtre.
  1239.  
  1240.     head() renvoie un pointeur sur une chaîne de caractères terminée par un
  1241.     délimiteur nul sans qu'il puisse servir à modifier directement le titre
  1242.     de la fenêtre.
  1243.  
  1244. voir aussi
  1245.  
  1246.     XWin::head()
  1247.  
  1248.  
  1249. ════════════════════════════════════════════════════════════════════════════
  1250. XWin::head                                                            public
  1251. remplace le titre de la fenêtre                                          2/2
  1252. ────────────────────────────────────────────────────────────────────────────
  1253.  
  1254. utilisation
  1255.  
  1256.     void    head (const char *str)
  1257.  
  1258. paramètres
  1259.  
  1260.     str     pointeur sur titre
  1261.  
  1262. description
  1263.  
  1264.     head() remplace le titre de la fenêtre par une copie de la chaîne str ou
  1265.     l'efface si str est nul ou vide.
  1266.  
  1267.     La longueur du titre est limitée à la largeur de la fenêtre moins deux
  1268.     caractères.
  1269.  
  1270.     La modification du titre est sans effet si la fenêtre ne dispose pas de
  1271.     l'attribut xw_HEADER.
  1272.  
  1273.     head() n'actualise pas l'affichage.
  1274.  
  1275. voir aussi
  1276.  
  1277.     XWin::defw(), XWin::draw(), XWin::head(), XWin::topw(), XWinMgr::sync()
  1278.  
  1279.  
  1280. ════════════════════════════════════════════════════════════════════════════
  1281. XWin::hide                                                            public
  1282. ferme la fenêtre
  1283. ────────────────────────────────────────────────────────────────────────────
  1284.  
  1285. utilisation
  1286.  
  1287.     void    hide (void)
  1288.  
  1289. description
  1290.  
  1291.     hide() ferme la fenêtre et actualise l'affichage des fenêtres ouvertes.
  1292.  
  1293.     hide() est sans effet si la fenêtre est déjà fermée.
  1294.  
  1295. voir aussi
  1296.  
  1297.     XWin::stat(), XWin::topw(), XWinMgr::sync()
  1298.  
  1299.  
  1300. ════════════════════════════════════════════════════════════════════════════
  1301. XWin::link                                                            public
  1302. ajoute un objet dans la fenêtre
  1303. ────────────────────────────────────────────────────────────────────────────
  1304.  
  1305. utilisation
  1306.  
  1307.     XObj *  link (XObj *obj)
  1308.  
  1309. paramètres
  1310.  
  1311.     obj     pointeur sur objet
  1312.  
  1313. description
  1314.  
  1315.     link() ajoute l'objet générique obj dans la fenêtre.
  1316.  
  1317.     link() doit être utilisée après la construction d'un objet pour qu'il
  1318.     s'intégre dans la fenêtre à laquelle il doit appartenir.
  1319.  
  1320.     Si obj est nul, link() appelle la fonction XWinMgr::halt().
  1321.  
  1322.     link() rend courant le premier objet ajouté qui est sélectionnable et
  1323.     accessible par tabulation. Si aucun objet de ce type n'est ajouté, la
  1324.     fenêtre ne dispose pas d'objet courant.
  1325.  
  1326.     link() renvoie l'adresse générique de l'objet ajouté.
  1327.  
  1328. voir aussi
  1329.  
  1330.     XWinMgr::halt(), objets...
  1331.  
  1332.  
  1333. ════════════════════════════════════════════════════════════════════════════
  1334. XWin::move                                                            public
  1335. déplace la fenêtre
  1336. ────────────────────────────────────────────────────────────────────────────
  1337.  
  1338. utilisation
  1339.  
  1340.     void    move (int abs, int row, int col)
  1341.  
  1342. paramètres
  1343.  
  1344.     abs     type de déplacement
  1345.     row     numéro de ligne
  1346.     col     numéro de colonne
  1347.  
  1348. description
  1349.  
  1350.     move() déplace la fenêtre et ses objets.
  1351.  
  1352.     Si abs est non nul, l'angle supérieur gauche de la fenêtre est placé sur
  1353.     la ligne row et la colonne col. Si une des coordonnées est négative, la
  1354.     fenêtre est centrée sur la dimension correspondante.
  1355.  
  1356.     Si abs est nul, move() déplace la fenêtre de row lignes vers le bas si
  1357.     row est positif et de col colonnes vers la droite ; le déplacement est
  1358.     inversé en cas de valeur négative.
  1359.  
  1360.     move() limite le déplacement de la fenêtre aux dimensions de l'écran.
  1361.  
  1362.     move() n'actualise pas l'affichage.
  1363.  
  1364. voir aussi
  1365.  
  1366.     XWin::drag(), XWin::draw(), XWin::topw(), XWinMgr::sync()
  1367.  
  1368.  
  1369. ════════════════════════════════════════════════════════════════════════════
  1370. XWin::next                                                            public
  1371. renvoie l'adresse de la fenêtre ouverte suivante
  1372. ────────────────────────────────────────────────────────────────────────────
  1373.  
  1374. utilisation
  1375.  
  1376.     XWin *  next (void)
  1377.  
  1378. assertions
  1379.  
  1380.     this    pointeur sur fenêtre ouverte
  1381.  
  1382. description
  1383.  
  1384.     next() renvoie l'adresse de la fenêtre ouverte suivante.
  1385.  
  1386.     next() renvoie 0 si la fenêtre est la dernière ouverte.
  1387.  
  1388. voir aussi
  1389.  
  1390.     XWin::prev(), XWin::stat()
  1391.  
  1392.  
  1393. ════════════════════════════════════════════════════════════════════════════
  1394. XWin::prev                                                            public
  1395. renvoie l'adresse de la fenêtre ouverte précédente
  1396. ────────────────────────────────────────────────────────────────────────────
  1397.  
  1398. utilisation
  1399.  
  1400.     XWin *  prev (void)
  1401.  
  1402. assertions
  1403.  
  1404.     this    pointeur sur fenêtre ouverte
  1405.  
  1406. description
  1407.  
  1408.     prev() renvoie l'adresse de la fenêtre ouverte précédente.
  1409.  
  1410.     prev() renvoie 0 si la fenêtre est la première ouverte.
  1411.  
  1412. voir aussi
  1413.  
  1414.     XWin::next(), XWin::stat()
  1415.  
  1416.  
  1417. ════════════════════════════════════════════════════════════════════════════
  1418. XWin::rect                                                            public
  1419. renvoie les coordonnées et dimensions de la fenêtre
  1420. ────────────────────────────────────────────────────────────────────────────
  1421.  
  1422. utilisation
  1423.  
  1424.     void    rect (int cli, XRec& rec)
  1425.  
  1426. paramètres
  1427.  
  1428.     cli     type de résultat
  1429.     rec     référence de XRec
  1430.  
  1431. assertions
  1432.  
  1433.     rec     != 0
  1434.  
  1435. description
  1436.  
  1437.     rect() renvoie dans la structure XRec les coordonnées et dimensions de
  1438.     la fenêtre si cli est nul ou de sa zone client si cli est non nul.
  1439.  
  1440.     Si cli est non nul, rect() vérifie la présence des attributs xw_FRAME et
  1441.     xw_HEADER pour déterminer les position et dimensions de la zone client
  1442.     de la fenêtre.
  1443.  
  1444.     La structure XRec a le format suivant :
  1445.  
  1446.             int     row     ; numéro de ligne supérieure
  1447.             int     col     ; numéro de colonne gauche
  1448.             int     wdt     ; largeur
  1449.             int     hgh     ; hauteur
  1450.  
  1451.  
  1452. ════════════════════════════════════════════════════════════════════════════
  1453. XWin::retn                                                            public
  1454. renvoie la valeur de retour de la fenêtre                                1/2
  1455. ────────────────────────────────────────────────────────────────────────────
  1456.  
  1457. utilisation
  1458.  
  1459.     int     retn (void)
  1460.  
  1461. description
  1462.  
  1463.     retn() renvoie la valeur de retour choisie par retn().
  1464.  
  1465. voir aussi
  1466.  
  1467.     XWin::retn()
  1468.  
  1469.  
  1470. ════════════════════════════════════════════════════════════════════════════
  1471. XWin::retn                                                            public
  1472. remplace la valeur de retour de la fenêtre                               2/2
  1473. ────────────────────────────────────────────────────────────────────────────
  1474.  
  1475. utilisation
  1476.  
  1477.     void    retn (int val)
  1478.  
  1479. paramètres
  1480.  
  1481.     val     valeur de retour
  1482.  
  1483. description
  1484.  
  1485.     retn() remplace la valeur de retour de la fenêtre par val.
  1486.  
  1487.     La valeur de retour est utilisée par exec() pour renvoyer à l'appelant
  1488.     le résultat de l'exécution d'une fenêtre modale.
  1489.  
  1490. voir aussi
  1491.  
  1492.     XWin::exec()
  1493.  
  1494.  
  1495. ════════════════════════════════════════════════════════════════════════════
  1496. XWin::stat                                                            public
  1497. renvoie l'état courant de la fenêtre
  1498. ────────────────────────────────────────────────────────────────────────────
  1499.  
  1500. utilisation
  1501.  
  1502.     int     stat (void)
  1503.  
  1504. description
  1505.  
  1506.     stat() renvoie l'état courant de la fenêtre.
  1507.  
  1508.     Le résultat de stat() est une des constantes ordonnées suivantes :
  1509.  
  1510.             ╒═══════════════════════════════════════════════════════════╕
  1511.             │   constante   utilisation                                 │
  1512.             ├───────────────────────────────────────────────────────────┤
  1513.             │    xw_HIDE    fenêtre fermée                              │
  1514.             │    xw_OPEN    fenêtre ouverte mais non courante           │
  1515.             │    xw_TOPW    fenêtre ouverte et active                   │
  1516.             │    xw_EXEC    fenêtre ouverte, active et en exécution     │
  1517.             └───────────────────────────────────────────────────────────┘
  1518.  
  1519.     L'état xw_EXEC indique que la fenêtre est en cours d'utilisation par les
  1520.     fonctions XWinMgr::eval() et XWinMgr::exec().
  1521.  
  1522. voir aussi
  1523.  
  1524.     XWin::hide(), XWin::topw(), XWinMgr::eval(), XWinMgr::exec()
  1525.  
  1526.  
  1527. ════════════════════════════════════════════════════════════════════════════
  1528. XWin::topw                                                            public
  1529. ouvre la fenêtre
  1530. ────────────────────────────────────────────────────────────────────────────
  1531.  
  1532. utilisation
  1533.  
  1534.     void    topw (void)
  1535.  
  1536. description
  1537.  
  1538.     topw() ouvre la fenêtre et actualise l'affichage des fenêtres ouvertes.
  1539.  
  1540.     topw() équivaut à draw() si la fenêtre est déjà active ; dans le cas
  1541.     contraire, topw() place la fenêtre au premier plan.
  1542.  
  1543. voir aussi
  1544.  
  1545.     XWin::draw(), XWin::hide(), XWin::stat(), XWinMgr::sync()
  1546.  
  1547.  
  1548. ════════════════════════════════════════════════════════════════════════════
  1549. XWin::type                                                            public
  1550. renvoie le type de la fenêtre                                            1/2
  1551. ────────────────────────────────────────────────────────────────────────────
  1552.  
  1553. utilisation
  1554.  
  1555.     int     type (void)
  1556.  
  1557. description
  1558.  
  1559.     type() renvoie le type de la fenêtre tel qu'il a été choisi lors de sa
  1560.     construction ou par type().
  1561.  
  1562. voir aussi
  1563.  
  1564.     XWin::type()
  1565.  
  1566.  
  1567. ════════════════════════════════════════════════════════════════════════════
  1568. XWin::type                                                            public
  1569. modifie le type de la fenêtre                                            2/2
  1570. ────────────────────────────────────────────────────────────────────────────
  1571.  
  1572. utilisation
  1573.  
  1574.     void    type (int typ)
  1575.  
  1576. paramètres
  1577.  
  1578.     typ     type de la fenêtre
  1579.  
  1580. assertions
  1581.  
  1582.     typ     type valide
  1583.  
  1584. description
  1585.  
  1586.     type() remplace le type de la fenêtre par typ.
  1587.  
  1588.     type() ne doit être utilisée que lors de la construction de la fenêtre.
  1589.  
  1590.     typ est une des constantes suivantes :
  1591.  
  1592.             ╒═══════════════════════════════════════════════════════════╕
  1593.             │   constante   utilisation                             déf │
  1594.             ├───────────────────────────────────────────────────────────┤
  1595.             │   xw_DIALOG   boîte de dialogue                        *  │
  1596.             │   xw_VMENU    menu vertical                               │
  1597.             └───────────────────────────────────────────────────────────┘
  1598.  
  1599.     type() modifie également la palette de couleurs associée à la fenêtre
  1600.     selon les critères suivants :
  1601.  
  1602.             -- si type xw_DIALOG, utilisation de la palette xa_dialog,
  1603.             -- si type xw_VMENU, utilisation de la palette xa_vmenu.
  1604.  
  1605.     type() n'actualise pas l'affichage.
  1606.  
  1607. voir aussi
  1608.  
  1609.     XWin::type()
  1610.  
  1611.  
  1612. ════════════════════════════════════════════════════════════════════════════
  1613. XObj::cell                                                            public
  1614. vérifie l'inclusion d'une cellule dans l'objet
  1615. ────────────────────────────────────────────────────────────────────────────
  1616.  
  1617. utilisation
  1618.  
  1619.     int     cell (int row, int col)
  1620.  
  1621. paramètres
  1622.  
  1623.     row     numéro de ligne
  1624.     col     numéro de colonne
  1625.  
  1626. description
  1627.  
  1628.     cell() vérifie l'inclusion de la cellule située sur la ligne row et la
  1629.     colonne col dans l'objet.
  1630.  
  1631.     Les coordonnées row et col sont relatives à l'écran.
  1632.  
  1633.     cell() renvoie 0 si la cellule n'est pas incluse dans l'objet et une
  1634.     valeur non nulle dans le cas contraire.
  1635.  
  1636.  
  1637. ════════════════════════════════════════════════════════════════════════════
  1638. XObj::draw                                                            public
  1639. dessine l'objet
  1640. ────────────────────────────────────────────────────────────────────────────
  1641.  
  1642. utilisation
  1643.  
  1644.     void    draw (void)
  1645.  
  1646. description
  1647.  
  1648.     draw() dessine l'objet.
  1649.  
  1650.     draw() doit être utilisée avec précaution car elle ne vérifie pas l'état
  1651.     de la fenêtre à laquelle appartient l'objet.
  1652.  
  1653. voir aussi
  1654.  
  1655.     XObj::pwin(), XWin::topw(), XWinMgr::sync()
  1656.  
  1657.  
  1658. ════════════════════════════════════════════════════════════════════════════
  1659. XObj::gray                                                            public
  1660. vérifie la validité de l'objet                                           1/2
  1661. ────────────────────────────────────────────────────────────────────────────
  1662.  
  1663. utilisation
  1664.  
  1665.     int     gray (void)
  1666.  
  1667. description
  1668.  
  1669.     gray() vérifie la validité de l'objet.
  1670.  
  1671.     gray() renvoie 0 si l'objet est accessible et une valeur non nulle dans
  1672.     le cas contraire.
  1673.  
  1674. voir aussi
  1675.  
  1676.     XObj::gray()
  1677.  
  1678.  
  1679. ════════════════════════════════════════════════════════════════════════════
  1680. XObj::gray                                                            public
  1681. invalide l'objet                                                         2/2
  1682. ────────────────────────────────────────────────────────────────────────────
  1683.  
  1684. utilisation
  1685.  
  1686.     void    gray (int imm, int cmd)
  1687.  
  1688. paramètres
  1689.  
  1690.     imm     commande d'affichage immédiat
  1691.     cmd     commande d'invalidation
  1692.  
  1693. description
  1694.  
  1695.     gray() invalide ou autorise l'accès à l'objet.
  1696.  
  1697.     Si cmd est non nul, gray() interdit l'accès à l'objet. Dans le cas
  1698.     contraire, il en autorise l'accès.
  1699.  
  1700.     gray() accepte l'invalidation de l'objet courant de la fenêtre ; il faut
  1701.     donc déplacer la sélection avant l'opération.
  1702.  
  1703.     gray() met à jour l'affichage si imm est non nul.
  1704.  
  1705.  
  1706. ════════════════════════════════════════════════════════════════════════════
  1707. XObj::id                                                              public
  1708. renvoie l'identificateur de l'objet
  1709. ────────────────────────────────────────────────────────────────────────────
  1710.  
  1711. utilisation
  1712.  
  1713.     int     id (void)
  1714.  
  1715. description
  1716.  
  1717.     id() renvoie l'identificateur de l'objet.
  1718.  
  1719.  
  1720. ════════════════════════════════════════════════════════════════════════════
  1721. XObj::next                                                            public
  1722. renvoie l'adresse du successeur de l'objet
  1723. ────────────────────────────────────────────────────────────────────────────
  1724.  
  1725. utilisation
  1726.  
  1727.     XObj *  next (void)
  1728.  
  1729. description
  1730.  
  1731.     next() renvoie l'adresse du successeur de l'objet.
  1732.  
  1733.     next() renvoie 0 si l'objet est le dernier ajouté dans la fenêtre au
  1734.     moyen de la fonction XWin::link().
  1735.  
  1736. voir aussi
  1737.  
  1738.     XObj::prev(), XWin::link()
  1739.  
  1740.  
  1741. ════════════════════════════════════════════════════════════════════════════
  1742. XObj::prev                                                            public
  1743. renvoie l'adresse du prédécesseur de l'objet
  1744. ────────────────────────────────────────────────────────────────────────────
  1745.  
  1746. utilisation
  1747.  
  1748.     XObj *  prev (void)
  1749.  
  1750. description
  1751.  
  1752.     prev() renvoie l'adresse du prédécesseur de l'objet.
  1753.  
  1754.     prev() renvoie 0 si l'objet est le premier ajouté dans la fenêtre au
  1755.     moyen de la fonction XWin::link().
  1756.  
  1757. voir aussi
  1758.  
  1759.     XObj::next(), XWin::link()
  1760.  
  1761.  
  1762. ════════════════════════════════════════════════════════════════════════════
  1763. XObj::pwin                                                            public
  1764. renvoie l'adresse de la fenêtre propriétaire
  1765. ────────────────────────────────────────────────────────────────────────────
  1766.  
  1767. utilisation
  1768.  
  1769.     XWin *  pwin (void)
  1770.  
  1771. description
  1772.  
  1773.     pwin() renvoie l'adresse de la fenêtre à laquelle appartient l'objet.
  1774.  
  1775.     L'adresse de la fenêtre propriétaire de l'objet est conservé lors de son
  1776.     ajout au moyen de la fonction XWin::link().
  1777.  
  1778. voir aussi
  1779.  
  1780.     XWin::link()
  1781.  
  1782.  
  1783. ════════════════════════════════════════════════════════════════════════════
  1784. XObj::rect                                                            public
  1785. renvoie les coordonnées et dimensions de l'objet
  1786. ────────────────────────────────────────────────────────────────────────────
  1787.  
  1788. utilisation
  1789.  
  1790.     void    rect (XRec& rec)
  1791.  
  1792. paramètres
  1793.  
  1794.     rec     référence de XRec
  1795.  
  1796. assertions
  1797.  
  1798.     rec     != 0
  1799.  
  1800. description
  1801.  
  1802.     rect() renvoie dans la structure XRec les coordonnées et dimensions de
  1803.     l'objet.
  1804.  
  1805.     Les coordonnées sont exprimées relativement à l'écran et non pas à la
  1806.     fenêtre propriétaire.
  1807.  
  1808.     La structure XRec a le format suivant :
  1809.  
  1810.             int     row     ; numéro de ligne supérieure
  1811.             int     col     ; numéro de colonne gauche
  1812.             int     wdt     ; largeur
  1813.             int     hgh     ; hauteur
  1814.  
  1815. voir aussi
  1816.  
  1817.     XWin::rect()
  1818.  
  1819.  
  1820. ════════════════════════════════════════════════════════════════════════════
  1821. XObj::stat                                                            public
  1822. renvoie l'état de la fenêtre propriétaire
  1823. ────────────────────────────────────────────────────────────────────────────
  1824.  
  1825. utilisation
  1826.  
  1827.     int     stat (void)
  1828.  
  1829. description
  1830.  
  1831.     stat() renvoie l'état courant de la fenêtre propriétaire de l'objet.
  1832.  
  1833. voir aussi
  1834.  
  1835.     XWin::stat()
  1836.  
  1837.  
  1838. ════════════════════════════════════════════════════════════════════════════
  1839. XObj::topw                                                            public
  1840. vérifie l'activité de la fenêtre propriétaire
  1841. ────────────────────────────────────────────────────────────────────────────
  1842.  
  1843. utilisation
  1844.  
  1845.     int     topw (void)
  1846.  
  1847. description
  1848.  
  1849.     topw() vérifie si la fenêtre propriétaire de l'objet est active.
  1850.  
  1851.     topw() renvoie 0 si la fenêtre n'est pas active et une valeur non nulle
  1852.     dans le cas contraire.
  1853.  
  1854. voir aussi
  1855.  
  1856.     XObj::stat(), XWin::stat()
  1857.  
  1858.  
  1859. ════════════════════════════════════════════════════════════════════════════
  1860. XObj::type                                                            public
  1861. renvoie le type de l'objet
  1862. ────────────────────────────────────────────────────────────────────────────
  1863.  
  1864. utilisation
  1865.  
  1866.     int     type (void)
  1867.  
  1868. description
  1869.  
  1870.     type() renvoie le type de l'objet.
  1871.  
  1872.     Chaque objet dérivé de la classe XObj possède un identificateur de type
  1873.     unique conservé lors de sa construction.
  1874.  
  1875. voir aussi
  1876.  
  1877.     objets...
  1878.  
  1879.  
  1880.  
  1881.