APPEARANCE WINDOW commande

Syntaxe :

APPEARANCE WINDOW [#][-] id&[, [titre$][,¬
                  [rect][, [classeFenetre][, [AttributsFenetre] [, [AttributsFB]]]]]]

Révision :

Février 2002 (Release 6)

Description :

Utilisez cette commande pour exécuter une des actions suivantes :

Créer une nouvelle fenêtre à l’écran;
Activer (sélectionner et ramener au premier plan) une enêtre existante;
Rendre une fenêtre existante visible ou invisible;
Changer le titre ou le rectangle d’une fenêtre existante.

La commande APPEARANCE WINDOW ressemble de très près à l’ancienne commande WINDOW, mais elle est utilisée essentiellement pour la création des fenêtres. Vous pouvez mélanger librement les fonctions et les commandes WINDOW avec des fenêtres qui ont été créées à l’aide de la commande APPEARANCE WINDOW. Par exemple, après la création d’une fenêtre avec la commande APPEARANCE WINDOW, vous pourriez déterminer sa taille à l’aide des fonctions WINDOW(_width) et WINDOW(_height).

Vous avez sans doute remarqué que les fenêtres dans la plupart des applications modernes n’ont pas un fond blanc uni. Ceci n’est pas accompli en dessinant dans la fenêtre à l’aide de commandes graphiques, mais par un simple appel au Theme Manager (Gestionnaire de Thèmes). L’instruction ci-dessous sera utile dans beaucoup de programmes :

DEF SETTHEMEWINDOWBACKGROUND(_kThemeActiveDialogBackgroundBrush,_zTrue)



Fenêtres avec ou sans fond du Theme Manager.

Les paramètres dans la commande APPEARANCE WINDOW doivent être spécifiés comme suit. Notez qu’ils sont interprétés légèrement différemment selon que vous créez une nouvelle fenêtre ou que vous en modifiez une déjà existante.

id

un entier positif ou négatif dont la valeur absolue est dans l’intervalle 1 à 2147483647.

titre$

une expression chaîne de caractères.

rect

un rectangle en coordonnées globales que vous pouvez exprimer avec l’une ou l’autre des formes suivantes :

(x1,y1)-(x2,y2) : Deux points diagonalement opposés.
@rectAdresse& :  Une expression sur un entier long ou un pointeur sur unevariable pointant sur une structure de 8 bits telle qu’une structure de type RECT.

classeFenetre

un entier long non signé qui spécifie la classe de la fenêtre. Ce n’est pas la même valeur que la classe utilisateur du runtime BASIC Standard, mais elle représente plus précisément la couche dans laquelle la fenêtre résidera.

Pour créer une variable de classe de fenêtre, utilisez la syntaxe suivante :

DIM wc AS WindowClass


Le tableau des classes de fenêtre ci-dessous introduit de nouveaux termes qui peuvent ne pas être familiers à ceux pour qui OS X est nouveau.

Une fenêtre feuillet (sheet window) est attachée à une fenêtre-mère. Elle surgit de la barre de titre de la fenêtre-mère pour forcer l’utilisateur à prendre une décision concernant le contenu de la fenêtre-mère.


Fenêtre feuillet

ClasseFenetre Valeur Description
_kAlertWindowClass
1
Fenêtre d'alerte.
_kMovableAlertWindowClass
2
Fenêtre d'alerte déplaçable.
_kModalWindowClass
3
Fenêtre modale au niveau du système, non déplaçable.
_kMovableModalWindowClass
4
Fenêtre modale au niveau de l'application, déplaçable.
_kFloatingWindowClass
5
Fenêtre flottant au-dessus de toutes les autres fenêtres de l'application. Disponible avec le système 8.6 ou ultérieur.
_kDocumentWindowClass
6
Fenêtre document.
_kDesktopWindowClass
7
Le bureau.
_kHelpWindowClass
10
Fenêtre d'aide.
_kSheetWindowClass
11
Fenêtre feuillet.
_kToolbarWindowClass
12
Fenêtre flottant au-dessus des fenêtres documents, mais dessous les palettes flottantes.
_kPlainWindowClass
13
Fenêtre vierge.
_kOverlayWindowClass
14
_kSheetAlertWindowClass
15
Fenêtre feuillet d'alerte.
_kAltPlainWindowClass
16
Fenêtre d'alerte vierge.

attributsFenetre  : cet entier long non signé décrit les caractéristiques et les éléments d’interface disponibles pour une fenêtre tels que case de fermeture, case d’agrandissement, ou encore case de réduction.

Vous pouvez déclarer une variable attributsFenetre de la manière suivante :

DIM wa AS WindowAttributes

L’apparence des éléments d’interface d’une fenêtre variera d’une version du système à une autre. Par exemple, avec le Système 9, les cases de zoom vertical, horizontal ou total ont une représentation distincte. Avec OS X, il n’y a pas de différence visible.


Zoom vertical, horizontal et total dans le Système 9

Zoom dans OS-X
attributsFenetre
Valeur
Description

_kWindowNoAttributes
0 Aucun attribut.
_kWindowCloseBoxAttribute 1 Case de fermeture.
_kWindowHorizontalZoomAttribute
2 Zoom horizontal.
_kWindowVerticalZoomAttribute 4 Zoom vertical.
_kWindowFullZoomAttribute 6 Zoom total.
_kWindowCollapseBoxAttribute 8 Case de réduction (place dans le Dock avec OS X)
_kWindowResizableAttribute 16 Case d'agrandissement.
_kWindowSideTitlebarAttribute 32 Titre sur le côté pour les fenêtres flottantes.
_kWindowNoUpdatesAttribute 65536 Ne reçoit aucun événement de mise à jour.
_kWindowActivatesAttribute 131072 Ne reçoit aucun événement d'activation.
_kWindowToolbarButtonAttribute 64
Possède un bouton outil dans la barre de titre.
_kWindowNoShadowAttribute 2097152 Pas d'ombre portée.
_kWindowLiveResizeAttribute 268435456 Evénements de redimensionnement envoyés de manière répétitive durant le redimensionnement.
_kWindowStandardDocumentAttributes 31 Case de fermeture, case de zoom, case de réduction, case d'agrandissement.
_kWindowStandardFloatingAttributes
9 Case de fermeture, case de réduction.


attributsFB    Cet entier long assigne des procédures qui seront utilisées par le runtime pour gérer la fenêtre. Certaines caractéristiques utilisées par le runtime BASIC Standard ne sont pas disponibles avec le runtime Appearance. Par exemple, _noAutoClip.

Constante Valeur Attribut FB
_updateVisRgn
2048 Cet attribut affecte la région d'affichage lorsque FutureBASIC^3 appellera votre gestionnaire d'événement de dialogue à la suite d'un événement de mise à jour (_wndRefresh). Si vous spécifiez cet attribut, la région d'affichage sera définie pour inclure seulement les parties de la fenêtre qui sont identifiées comme ayant réellement besoin d'être redessinées (la région d'affichage sera réinitialisée à sa valeur précédente à la sortie de la routine gestionnaire). Si vous omettez cet attribut, la région d'affichage sera définie pour inclure la fenêtre entière à l'exclusion éventuelle des contrôles et des champs.
_clickThru 4096 Cet attribut affecte la manière dont les clics sont traités lorsque votre programme active une fenêtre en réponse à un événement _wndClick. Si l'attribut _clickThru a été assigné, le clic d'activation est "prolongé", cela peut provoquer la génération d'autres événements (tels que _btnClick ou _efClick), selon l'endroit où le clic a eu lieu. Si vous omettez cet attribut, deux clics seront nécessaires pour activer la fenêtre, puis pour interagir avec son contenu.
_noAutoFocus 32768 Utilisez cet attribut pour empêcher la touche de tabulation de faire avancer la zone de saisie de texte au champ d'édition suivant.
_keepInactive 65536 Cet attribut assure que la fenêtre ne pourra être rendue active. Les contrôles dans cette fenêtre ne fonctionneront pas. Si vous rendez la fenêtre active par programmation (avec la commande WINDOW), elle se comportera de manière normale.


Création d’une fenêtre

• id Spécifiez un identifiant dont la valeur absolue est différente de tout autre identifiant de fenêtre existant. Une nouvelle fenêtre est créée et se voit assigner cette valeur absolue comme identifiant. Vous pourrez utiliser cet identifiant ultérieurement pour spécifier cette fenêtre dans les autres commandes et fonctions de FB^3. Si vous utilisez un identifiant négatif, la fenêtre est construite dans un état invisible; il est quelquefois utile de créer une fenêtre initialement masquée, par exemple, si elle doit contenir des contrôles, des champs et des graphiques qui peuvent prendre un certain temps à construire. Vous pouvez utiliser de nouveau la commande WINDOW pour rendre la fenêtre visible (voir ci-dessous). Lorsque vous créez une nouvelle fenêtre, elle devient la fenêtre d’affichage courant. Si vous la créez dans un état visible (et que vous ne spécifiez pas l’attribut _keepInBack), elle devient aussi la fenêtre active courante.
• titre$ Attribue une chaîne de caractères à la barre de titre de la fenêtre (si la fenêtre possède une barre de titre). Si vous omettez ce paramètre, la fenêtre sera créée sans titre.
• rect Spécifie les taille et position initiales du contenu de la fenêtre. Notez que le rectangle n’inclue pas le cadre structurel de la fenêtre. Ce paramètre est interprété de manière spéciale si vous spécifiez les coordonnées (0,0) pour le coin haut et gauche du rectangle, auquel cas, la fenêtre est centrée à l’écran et ses largeur et hauteur seront déterminées par les coordonnées bas et droite du rectangle. Cette interprétation spéciale ne s’applique que lors de la création d’une nouvelle fenêtre. Si vous omettez le paramètre rect, une fenêtre avec une taille et une position par défaut est créée.
• classeFenetre Spécifie la couche dans laquelle la fenêtre résidera.
• attributsFenetre Spécifie les éléments d’interface que la fenêtre incluera.
• attributsFB Spécifie des gestionnaires spécifiques du runtime qui détermineront un certain nombre de comportements de la fenêtre.

Voir Aussi :