Bannière de NPC
  Trucs et Astuces pour BeOS -       Catégorie: Interface
 

Accueil

Alertes
Applications
Audio et Vidéo
Divers
Interface
Matériel
Réseaux
Terminal
Tracker

Infos Serveur

 

 

Contrôlez l'apparence, la réactivité et le comportement de vos fenêtres avec "hey"

Quelques-unes des astuces de ce site font allusion à la façon dont vous pouvez contrôler l'apparence, la réactivité ou le comportement de vos applications BeOS en leur envoyant des BMessages avec hey (lisez par exemple Garder la main en changeant d'espace de travail).
Ce qui n'est pas du tout évident lorsque vous lisez ces astuces, c'est la façon dont on détermine les numéros magiques utilisés dans les commandes hey.

Le secret se trouve dans le fichier /boot/develop/headers/be/interface/Window.h -- un fichier d'en-tête qui contient tout un tas de propriétés des fenêtres. Si vous jetez un coup d'œil à ce fichier, vous verrez qu'il est organisé selon différentes rubriques:

 type de fenêtre          (window_type)
 apparence de fenêtre     (window_look)
 réactivité de fenêtre    (window_feel)
 

ainsi qu'une rubrique séparée pour définir les comportements. Les trois rubriques ci-dessus utilisent des identifiants numériques entiers standards, tandis que la rubrique des comportements utilise des identifiants hexadécimaux. Chaque application BeOS détermine ses caractéristiques propres en interne, mais ces caractéristiques peuvent être modifiées en envoyant un message approprié à une application ou à une fenêtre.

Il est assez facile de modifier le type, l'apparence, ou la réactivité d'une fenêtre donnée.
Par exemple, disons que vous voulez modifier l'apparence d'une fenêtre de NetPositive en "bordered." Dans le fichier Window.h, vous trouvez la ligne:

	B_BORDERED_WINDOW_LOOK	= 20,

Il vous suffit donc de saisir:

hey NetPositive set Look of Window 0 to 20

Et boom -- cette fenêtre de NetPositive perd sa barre de titre et la majorité de sa décoration. Voilà pour l'apparence et la réactivité.

Comme les comportements des fenêtres sont exprimés en hexa, et comme ces comportements peuvent être une combinaison d'une ou plusieurs propriétés, les choses deviennent un petit peu plus complexe quand il s'agit de modifier un comportement.

Plus précisément, le comportement d'une fenêtre dépend de la valeur [val] passée à sa fonction SetFlags(), et [val] peut être une combinaison de n'importe quels drapeaux définis dans Window.h. Il existe aussi une fonction SetFeel() qui intervient sur des champs de comportement supplémentaires.

L'"algorithme" habituel est le suivant:

hey ApplicationName get Flags

mais dans la plupart des cas vous aurez aussi à nommer une fenêtre particulière de l'application, par exemple:

hey ApplicationName get Flags of Window 0

hey renverra deux nombres -- quelque chose du genre:

 Reply BMessage(B_REPLY):
    "result" (B_INT32_TYPE) : 16450 (0x00004042) 
 

Le premier nombre retourné est une valeur décimale (16450 dans ce cas). Pour modifier le comportement de cette fenêtre, il faut ajouter cette valeur à l'équivalent décimal de la propriété que vous voulez ajouter (les comportements s'ajoutent). Ça a l'air compliqué? Essayons ensemble! On jette derechef un coup d'œil à Window.h, et on trouve:

	B_AVOID_FRONT	= 0x00000080,

donc pour empêcher que cette fenêtre ne se mette automatiquement au premier plan quand on change d'espace de travail (comme décrit dans l'astuce Garder la main en changeant d'espace de travail), il faut convertir 0x00000080 en décimal (vous pouvez utiliser cet utilitaire de conversion en ligne), l'additionner à la valeur précédente, et donner la nouvelle valeur à la fenêtre. On obtient 128+ 16450, soit 16578. Maintenant, il suffit de saisir:

hey NetPositive set Flags of Window 1 to 16578

et la fenêtre désignée ajoutera la propriété "Avoid front" à ses autres propriétés (si vous changez d'espace de travail puis revenez au premier, cette fenêtre refusera d'être au premier plan quand vous reviendrez au premier espace de travail).

Cette technique n'est pas exempte de gaffe à 100% (par exemple si vous définissez un drapeau déjà défini cela pourrait définir un autre drapeau de façon aléatoire, etc.) aussi il est conseillé d'être prudent. Mais vous ne ferez pas sauter votre ordinateur avec hey, et vous retrouverez les valeurs d'origine simplement en relançant l'application concernée.

Pour encore plus d'informations sur l'usage de hey, reportez-vous au chapitre sur le Sciptage de Chris Herborth dans la Bible BeOS, ou explorez le didacticiel de hey de Seth Flaxman sur BeNews.

Read this Tip in English here
Hier findest Du den Tip in Deutsch


Cette astuce est une contribution de Cedric Degea and Scot Hacker.
Site de l'auteur de cette astuce: http://www.ngent.com/.

Astuce traduite par: BeTrayer (Jean Schwerer).

Traduction Française du Serveur BeTips © 2000 BeTrayer et équipe
 

 

BeArchives.com Banner Exchange Network