Tutoriel sur les Thèmes

[ Retournez aux thèmes pour Shareaza ]

<windowSkins>

L'élément <windowSkins> a la plus de force que tous les autres éléments. Il contrôle l'apparence de n'importe quelle fenêtre dans Shareaza, et aussi les bordures externes de la fenêtre principale.

Les thèmes pour les fenêtres sont contrôlées par les éléments <windowSkins>. Chaque thème fenêtre a un collection d'éléments qui contrôlent des aspects différents de l'apparence de la fenêtre.

Voici un exemple facile :

<?xml version="1.0" encoding="UTF-8"?>
<skin xmlns="http://www.shareaza.com/schemas/Skin.xsd" version="1.0">

<manifest name="My Window Skin" author="Me" type="Skin"/>
   <windowSkins>
      <windowSkin>
          <target name="CMainWnd"/>
          <image path="MySkin.bmp"/>
          <parts>
             <part name="Top" rect="0,0,64,20"/>
          </parts>
      </windowSkin>
   </windowSkins>
</skin>

Éléments

Il y a beaucoup d' éléments différents qui peuvent être inclus dans un thème. Chaque sera décrit présentement. Voici un index des éléments :

Élément Description
<target> Pour appliquer le thème sur une fenêtre spécifiée, ou une famille de fenêtres
<image> Lit un bitmap qui sera utilisé dans le thème
<parts> Définit les parties de l'image source qui seront utilisées pour peindre le fenêtre
<anchors> Les régions de la fenêtre qui sont spéciales, comme les boutons
<caption> Contrôle comment le caption texte doit être peint
<region> Créé un région non-rectangulaire pour une fenêtre

<target>

L'élément <target> spécifie a quelle fenêtre doit être appliqué ce thème. On peut avoir plus qu'un élément <target> dans un thème, donc on peut appliquer un thème à plus d'une fenêtre.

Le target est entré dans un attribut name, et c'est le nom d'une fenêtre ou "base class". Voici un liste d'exemples de target names :

Objectif Description
CMainWnd La fenêtre principale
CChildWnd N'importe quelle fenêtre enfant (child window) détachée (mode fenêtré)
CChildWnd.Panel N'importe quelle fenêtre enfant (child window) fixée (mode tabulé)
CSearchWnd La fenêtre recherche seulement, en mode fenêtré
CSearchWnd.Panel La fenêtre recherche seulement, dans mode tabulé
*** Un panel (panneau) dans Shareaza peut être modifié de la même façon, comme CHomeWnd.Panel ou CmediaWnd.Panel. ***
CBaseMatchWnd Les fenêtres recherche, hit monitor et parcourir hôte, quand elles sont détachées (mode fenêtré)
CHostCacheWnd La fenêtre host cache
CDialog Chaque dialogue dans Shareaza
CAboutDlg Le dialogue about
CSettingsSheet La page des réglages Shareaza (ce n'est PAS un CDialog)
CDownloadMonitorDlg Le moniteur téléchargement

<image>

Le tag <image> commande Shareaza de lire un image ressource pour former un partie du thème. Le nom du fichier bitmap est spécifié dans un attribut path (chemin). Il y a deux types de tag <image> qui sont présentement supportés. Le type plus commun et utile est :

<image path="SomeImage.bmp"/>

L'image spécifiée et utilisée pour peindre le thème. Tous les parties de la fenêtre, etc. sont chargées de cette image. Une autre méthode moins commune est :

<image path="Background.bmp" type="watermark"/>

Ceci va carreler l'image ressource nommée comme une image de fond filigrane pour le dialogue nommé. A présent, c'est supporté seulement dans les dialogues.

<parts>

L'élément <parts> contient un liste des régions (ou "parts") dans l'image ressource qui sont utilisées pour peindre la fenêtre. Les fenêtres ont plusieurs parties, chacune avec un nom, comme "TopLeft". Shareaza va peindre la fenêtre par dessiner les parties de l'image ressource sur chaque partie du fenêtre.

Chaque partie a un name (nom) et un rect. Le nom indique quelle région de la fenêtre où il sera peint, et le rect signale le rectangle exacte de l'image qui doit être utilisé dans le format x,y,width,height. Par exemple:

<parts>
    <part name="TopLeft" rect="0,0,32,20"/>
    <part name="Top" rect="32,0,64,20"/>
    <part name="TopRight" rect="96,0,32,20"/>
</parts>

Les part names qui suivent peut être inclus dans un thème

PartDescription
TopLeft Le coin haut-gauche de la fenêtre
Top La bordure haut-centre de la fenêtre (taille variable)
TopRight Le coin haut-droit de la fenêtre
 
LeftTop La région entre haut-gauche et gauche
Left La région gauche de la fenêtre (taille variable)
LeftBottom La région entre Left et BottomLeft
 
RightTop La région entre TopRight et Right
Right Le coin droit de la fenêtre (taille variable)
RightBottom La région entre Right et BottomRight
 
BottomLeft Le coin bas-gauche de la fenêtre
Bottom Le bordure du bas-centre de la fenêtre (taille variable)
BottomRight Le coin bas-droit de la fenêtre
   
System L'élément menu système dans les conditions normales, hover et appuyer
SystemHover
SystemDown
Minimise le bouton minimise dans les conditions normales, hover et appuyer
MinimiseHover
MinimiseDown
Maximise Le bouton maximise dans les conditions normales, hover et appuyer
MaximiseHover
MaximiseDown
Close Le bouton close (fermer) dans les conditions normales, hover et appuyer
CloseHover
CloseDown

Ces parties ont les conditions inactives suivantes:

Part Description
TopLeftIA Le coin haut-gauche de la fenêtre
TopIA La bordure haut-centre de la fenêtre (taille variable)
TopRightIA Le coin haut-droit de la fenêtre

Les quatre coins sont peints comme dans l'image source. Les quatre bordures sont carrelées avec l'image pour les remplir. Tous ces parties sont optionnelles.

Pour les quatre parties qui ont une taille qui peut changer, le tiling et la méthode utilisée par défaut pour remplir l'écran avec ces parties. Une autre méthode est d'étendre la ressource pour qu'elle remplisse la région target. Pour ce faire, inclure mode="stretch" dans l'élément <part>.Les parties inactives et étendues vont paraître comme :

<parts>
    <part name="TopLeft" rect="0,0,32,20"/>
    <part name="TopLeftIA" rect="0,0,32,20"/>
    <part name="Top" rect="32,0,64,20" mode="stretch"/>
    <part name="TopIA" rect="32,0,64,20" mode="stretch"/>
    <part name="TopRight" rect="96,0,32,20"/>
    <part name="TopRightIA" rect="96,0,32,20"/>
</parts>

Finalement, tous les parties des fenêtres peuvent être modifiées avec parts. Par exemple, dans le Lecture média, il y a un panneau où il est écrit "media", et il y aussi un bouton "close". Voici un exemple avec ces choses :

<image path="WindowPanel.bmp"/>
<target window="CMediaWnd.Panel"/>
    <parts>
        <part name="TopLeft" rect="1,23,129,21"/>
        <part name="Top" rect="130,23,10,21"/>
        <part name="TopRight" rect="0,45,64,21"/>
        <part name="CloseHover" rect="64,45,61,21"/>
        <part name="CloseDown" rect="128,45,61,21"/>
    </parts>

Bien sûr un anchor pour le bouton "close" sera nécessaire, par exemple. La façon de le faire est expliquée dans la prochaine section. =)

<anchors>

Les anchors sont utilisés pour placer des parties importantes de la fenêtre, comme les boutons close, maximise et minimise. Shareaza a besoin de savoir les positions de ces endroits, pour que les commandes de l'utilisateur soient correctement exécutées.

Par exemple :

<anchors>
    <anchor name="System" rect="4,4,18,18"/>
    <anchor name="Close" rect="-21,4,17,17"/>
    <anchor name="Maximise" rect="-40,4,17,17"/>
    <anchor name="Minimise" rect="-59,4,17,17"/>
</anchors>

On se rappelle que les rects dans l'élément <anchor> sont des positions sur la fenêtre, et non pas les positions dans le fichier image, et que les fenêtres peuvent être de n'importe quel taille, on a besoin d'une méthode pour spécifier des rectangles relatifs à n'importe quel coin de la fenêtre, pas seulement le coin de haute-gauche.

Les coordonnées peuvent être positif ou negatif. Les coordonnées positifs sont relatives au coin du haut-gauche, les coordonnées négatives sont relatives au coin de bas-droite. Donc, dans notre exemple, un coordonnée X de "-21" veut dire 21 pixels de la marge droite, et une coordonnée X de "4" veut dire 4 pixels de la marge gauche. Les rectangles sont spécifiés dans le format x,y,longueur,hauteur.

Anchors et parts peut travailler ensemble pour faire une fenêtre. Par exemple, si vous avez les parts MinimiseHover et MinimiseDown, ils seront peints sur votre anchor Minimise.

les ancres suivants sont possible :

Ancre

Description
Icon La région 16X16 pour afficher l'icône pour la fenêtre
System La région qui peut être cliquée pour afficher le menu popup système
Minimise Le bouton minimise (minimiser)
Maximise Le bouton maximise (maximiser)
Close Le bouton close (fermer)

<caption>

L'élément <caption> (infobulle) contrôle les aspects des captions textuels. Si l'élément n'est pas présent, le texte ne sera pas affiché. Voici un exemple :

<caption
    rect="25,2,-69,22"
    fontFace="Tahoma" fontSize="11"
    colour="FFFFFF" inactiveColour="273C47"/>

Voici les attributs qu'un élément caption peut avoir:

  • rect - Le rectangle occupé par un caption. Les coordonnées sont absolues, mesuré du quadrant haut gauche, x1,y1,x2,y2, et les coordonnées négatives sont relatives au marge bas droite du fenêtre. Ce système permet qu'un caption puisse changer avec la taille du fenêtre.
  • fontFace - Le "font face", si c'est différent de la police par défaut de Windows pour les boîtes caption.
  • fontSize - La taille de la police, en points ou pixels. Si une taille est spécifiée, le "face name" doit aussi être spécifié
  • fontWeight - Le degré de gras des caractères, spécifié par un nombre entre 1 et 1000, ou un mot-clé, comme "plain" ou "bold".
  • colour - La couleur utiliser pour peindre le texte du caption quand la fenêtre est activée.
  • inactiveColour - La couleur utilisée pour peindre le texte du caption quand la fenêtre est inactivée.
  • OutlineColour - La couleur du bordure un-pixel autour du texte de le caption.
  • ShadowColour - La couleur de l'ombre autour du texte du caption.
  • fill - La couleur qui sera utilisé pour peindre le rectangle du caption avant que le texte ne soit affiché. Si rien n'est spécifié, ce rectangle n'est pas coloré.
  • caps - Si c'est activé, les textes des captions seront écrits avec des lettres capitales.

<region>

L'élément region est utilisé pour construire un région non-rectangulaire pour un fenêtre, pour une apparence frappante. Si cet élément n'est pas présent, Shareaza construira un region standard rectangulaire.

Si l'élément region est inclus, il consiste des éléments <shape>, chaque shape (forme) correspond a une forme primitive, et elles peuvent être combinées avec des opérations sur les ensembles pour faire une forme finale complexe.

Voici un exemple :

<region>
    <shape type="rectangle" rect="9,25,-11,-1"/>
    <shape type="roundRect" rect="0,0,-1,26" size="16,25" combine="or"/>
</region>

Chaque "shape" consécutif est combiné avec la région en-formation pour finalement former la forme finale de la fenêtre. Chaque shape contient :

  • type - Le type du shape (expliqué ci-dessous)
  • rect - Le rectangle qui forme la bordure de ce shape, dans la forme x1,y1,x2,y2. Les nombres négatifs sont en relation avec le droit et bas de la fenêtre, donc "0,0,-1,-1" va couvrir la fenêtre entière.
  • combine - Comment combiner ce shape avec le précédent. Le premier shape ne doit avoir un attribut "combine".

Les méthodes de composition sont :

  • or - Additionner le shape au précédent ("OR")
  • and - Prendre les régions en-commun de ce shape et tous les précédents ("AND")
  • xor - Additionner la région de ce shape avec les précédents, en exclure les régions en commun ("XOR")
  • diff - Soustraire ce shape des précédents

Les types shape sont :

  • rectangle - Un rectangle
  • ellipse - Une ellipse
  • roundRect - Un rectangle avec des coins arrondis. Les shapes de ce type doivent avoir un attribut de plus : size, avec deux paramètres qui représentent la longueur et hauteur des courbes, par exemple size="16,20"

[ Retournez aux thèmes pour Shareaza ]

  • en
  • es
  • fr
  • de
  • hr
  • it
  • lt
  • nl
  • nb
  • pl
  • pt
  • sl
  • tr
  • el
  • he
  • ja
  • zh-tw
  • en
  • ca
  • fa
  • ru
Beaucoup de personnes aident Shareaza de leur temps et leurs efforts. Merci de voir notre page de remerciements.
Visit Shareaza's Project Page at SourceForge.net
< Haut de la page | Contactez-nous >