MenuScrollWindow

Classe de sélection par ligne dans un texte.

Version: 1.1
Date: Le 13 août 1997
Rédaction: Jocelyn Houle
Direction: Jean Vaucher


Introduction

Les MenuScrollWindows sont des sous-classes des ScrollWindows. Elles ont donc tous les attributs particuliers aux ListWindows et aux ScrollWindows. Elles permettent en plus de choisir une des lignes et de retourner la valeur associée pour un traitement ultérieur.

La différence majeure avec une ScrollWindow est la présence de boutons: "Ok" et "Cancel". Sans surprises, "Ok" sert à valider le choix et "Cancel", à annuler la sélection.

Double-cliquer sur une ligne a exactement le même effet que d'appuyer sur "Ok".

Code

BEGIN
   EXTERNAL CLASS WindowTools;
   
   INSPECT NEW MainWindow("MenuScrollWindow") DO
   BEGIN
      REF(MenuScrollWindow) MSW;
      REF(Button) Ok;

      MSW :- MakeMenuScrollWindow.SetSize(250, 200);
      SetSizeToSubwindowSize;
      Show;
      Outtext( MSW.Menu("La question",
                        "+Choix 1+Choix 2+Choix 3+Choix 4",
                        "Choix 2")                          );
   END;
END;

Après avoir créé la MenuScrollWindow, on a utilisé la fonction Menu qui retourne le choix final. Le premier paramètre est la question posée, le second définit les choix (délimités par des '+') et le dernier est le choix par défaut.


Informations sur les MenuScrollWindows

On crée une MenuScrollWindow à l'aide de MakeMenuScrollWindow, qui n'a besoin d'aucun paramètre.
ref(MenuScrollWindow) procedure MakeMenuScrollWindow;
Crée un MenuScrollWindow et le retourne.

On a aussi des procédures de traitement d'événements propres aux MenuScrollWindows. Il y a tout d'abord une procédure qui définit des éléments importants du MenuScrollWindow.
procedure SetMenu(Question, Choix, Defaut); text Question, Choix, Defaut;
Définit la Question, qui sera affichée en haut de la MenuScrollWindow, les Choix, délimités par un séparateur à la manière des PopupMenus, ainsi que le choix par défaut (Defaut).

Il existe aussi une procédure d'attente:
text procedure WaitMenu;
Attend que l'usager ait validé son choix final et le retourne.

Il existe finalement une procédure qui fait les deux (SetMenu et WaitMenu) directement:
text procedure Menu(Question, Choix, Defaut); text Question, Choix, Defaut;
Définit les éléments de la MenuSrollWindow puis attend que l'usager ait validé son choix final pour le retourner.

Outre les procédures héritées des surclasses, les MenuScrollWindows répondent à quelques événements standards:
procedure Selection_Handler(Window, Item, ItemN); Ref(XWindow) Window; text Item; integer ItemN;
Change les 3 valeurs mises en paramètre pour celles correspondantes (voir les Events).


Exemples de programmes

[Retour à l'index de WindowTools...]