Améliorations XUL dans Firefox 3

Firefox 3 fournit un certain nombre de nouveaux éléments XUL, ainsi que des améliorations sur des éléments existants. Bien que ces éléments soient documentés ailleurs, cet article offre une liste pratique des améliorations ainsi que des liens vers la documentation détaillée.

Nouveaux éléments

  • Contrôles numériques :

    • Le nouvel élément <scale> permet de créer des échelles glissantes permettant à l'utilisateur de sélectionner une valeur dans un intervalle donné. Ce contrôle serait typiquement utilisé, par exemple, pour créer un contrôle de volume. Référence de scale (bug Firefox 290255)
    • Une nouvelle valeur 'number' pour l'attribut type des élément textbox crée une boîte de texte dans laquelle seuls des nombres peuvent être entrés. De plus, des boutons fléchés apparaissent sur le côté permettant de se déplacer parmi les valeurs. (bug Firefox 345510)
    • Un élément <spinbuttons> a été ajouté, qui peut être utilisé pour créer des contrôles à l'aide de liaisons XBL. (bug Firefox 155053)
    • Deux contrôles, <datepicker> et <timepicker>, peuvent être utilisés pour permettre l'entrée de dates et d'heures. Le sélecteur de tdate est disponible en plusieurs styles selon l'attribut type, et permet des entrées via des boîtes de texte ou un calendrier. Référence sur datepicker
  • Un guide a été créé pour décrire les nouvelles fonctionnalités disponibles pour les menus et les popups.

    • Un élément <dropmarker> a été ajouté, qui peut être utile pour créer des contrôles semblables à des menus à l'aide de liaisons XBL. (bug Firefox 348614)
    • Le nouvel élément <panel> est destiné aux popups qui ne sont pas des menus. Il peut supporter n'importe quel type de contenu. L'élément <menupopup> devrait être utilisé pour des menus. Les menus fournissent la navigation par le clavier et l'ouverture/fermeture des sous-menus.

Améliorations des arbres

  • Il est possible à présent faire défiler des arbres horizontalement. Une barre de défilement horizontal apparaitra si toutes les colonnes n'entrent pas dans la largeur disponible. Cela se produira si la somme des largeurs de colonnes spécifiées est plus grande que l'espace disponible. (bug Firefox 212789)
  • Un nouveau style de sélection permet de sélectionner les cellules individuellement plutôt que des lignes entières. On peut l'utiliser en définissant l'attribut seltype d'un arbre à la valeur 'cell'. (bug Firefox 296040)
  • Des cellules individuelles d'un arbre peuvent être modifiées. Un double-clic sur une cellule éditable affichera un champ texte dans lequel l'utilisateur pourra modifier le contenu de la cellule. (bug Firefox 201499)
  • Les éléments <treecol> supportent maintenant un attribut overflow qui peut être défini à true pour permettre au texte des cellules d'un colonne de déborder dans les cellules vides voisines si le texte est trop grand pour s'afficher dans une seule cellule.

Améliorations des menus

  • L'attribut image est utilisé de manière consistante pour définir des images
  • Les menulist déclenchent l'évènement select lorsqu'un élément est sélectionné
  • Les propriétés inputField et editable ont été ajoutées à l'élément menulist
  • Les éléments <menu>, <menuitem> et <menuseparator> disposent d'une propriété en lecture seule selected indiquant si l'élément est sélectionné dans une <menulist>
  • Les éléments <menu>, <menuitem> et <menuseparator> disposent d'une propriété en lecture seule control qui renvoie l'élément <menulist> parent
  • Les éléments <menu>, <menuitem> et <menuseparator> disposent de propriétés accessKey, disabled, crop, image et label permettant de modifier l'attribut correspondant
  • L'élément <menu> dispose à présent de méthodes pour ajouter, insérer et supprimer des éléments de menu (menuitems). (bug Firefox 372552)
  • Une propriété editor permet d'obtenir le nsIEditor interne pour le champ texte d'un élément menulist modifiable.(bug Firefox 312867)
  • Les menus peuvent être rendus translucides sur les plateformes qui le permettent. (bug Firefox 70798)

Améliorations des boîtes de texte

  • En définissant l'attribut spellcheck d'une boîte de texte à 'true', la correction orthographique sera activée pour cette boîte de texte. (bug Firefox 346787)

  • L'élément <textbox> dispose d'une méthode reset() pour réinitialiser la valeur de la boîte de texte à sa valeur par défaut. La propriété defaultValue peut être utilisée pour retrouver et modifier cette valeur par défaut. (bug Firefox 312867)

  • Une propriété editor permet d'obtenir le nsIEditor internet pour le champ texte. (bug Firefox 312867)

  • textbox dispose d'un attribut newlines spécifiant comment les retours à la ligne dans les textes collés seront traités. (bug Firefox 253481) Les valeurs possibles sont :

    • pasteintact — tout coller tel quel
    • pastetofirst — (valeur par défaut) coller uniquement ce qui précède le premier retour à la ligne
    • replacewithspaces — remplacer les retours à la ligne par des espaces
    • replacewithcommas — remplacer les retours à la ligne par des virgules
    • strip — retirer tous les retours à la ligne
    • stripsurroundingwhitespace — retirer tous les retours à la ligne et les blancs qui les entourent

Autres améliorations

  • L'attribut type d'un élément <button> peut être défini à 'repeat' pour créer des boutons qui se déclenchent régulièrement tant que le bouton est enfoncé. (bug Firefox 331055)
  • L'attribut buttondisabledaccept peut être utilisé sur l'élément <dialog> pour que le bouton OK soit initialement désactivé. (bug Firefox 247849)
  • L'élément <titlebar> dispose d'un attribut allowevents permettant de passer des évènements aux enfants de la barre de titre. (bug Firefox 361425)
  • L'élément <splitter> dispose d'une valeur supplémentaire 'both' pour l'attribut collapse indiquant que le séparateur peut coller les éléments sur les deux côtés lorsqu'il est déplacé. L'attribut substate sera défini soit à before, soit à after lorsque l'un des deux est collé. (bug Firefox 337955)
  • L'élément <richlistbox> permet les sélections multiples. Définissez l'attribut seltype à 'multiple' pour activer cette fonctionnalité.
  • L'élément <radio> dispose d'un attribut group permettant de définir l'id de l'élément <radiogroup> auquel appartient le bouton radio. Cela permet aux boutons radio d'être placés d'une autre manière que de les inclure tous à l'intérieur d'un radiogroup.
  • Menus, panels et tooltips supportent deux nouvelles méthodes, openPopup() et openPopupAtScreen(). Ces méthodes devraient être utilisées à la place de showPopup qui était source de confusion à l'utilisation.
  • La gestion de l'élément <key> a été améliorée pour les utilisateurs de claviers non-Latins. Voir Évènement keypress dans Gecko.
  • Sous Mac OS X, les attributs activetitlebarcolor et inactivetitlebarcolor des éléments racine (<window>, <dialog>, <prefwindow> et <wizard>) sont disponibles pour personnaliser la couleur de la barre de titre des fenêtres.

Voir aussi