2 // ***************************************************************************
3 // ***************************************************************************
5 // ***************************************************************************
6 // ***************************************************************************
10 Fichier de definition des commandes et paramtres de l'interface
13 Note: dans la syntaxe et la description des parmptres, la valeur indique est la valeur par dffaut
15 Note: le X va vers la droite, le Y vers le haut. Les valeurs sont en pixels
17 Note: DERIVANT DE veut dire qu'on peut mettre les meme parametres que celui de qui on derive
18 les modifiables sont aussi herites
20 Note: MODIFIABLE veut dire que l'on peut modifier un paramtres dans le script (avec un link par exemple)
22 Note: OBLIGATOIRE veut dire que l'option doit tre presente sinon il y a crash ou non fonctionnement
24 Note: Identifiant de localisation local de type string (fait reference a un id de en.uxt par exemple)
25 Identifiant de localisation reseau de type integer
27 // ***************************************************************************
28 // ***************************************************************************
30 // ***************************************************************************
31 // ***************************************************************************
33 chaque vue, control, ou group DERIVE DE interface_element et peut avoir les parametres suivant:
36 id="" // id de l element. OBLIGATOIRE
37 active="true" // affiche ou pas
38 x="0" // position en X relative posref et posparent
39 y="0" // position en Y relative posref et posparent
40 w="0" // Taille de l element. Si l element possde un parent, prend le W du parent par defaut
41 h="0" // Taille de l element. Si l element possde un parent, prend le H du parent par defaut
42 posref="BL BL" // position de reference (Bottom Left, MiddleMiddle etc...)
43 // Se lit "PositionDuParent MaPosition"
44 // Ex: "BL TR" signifie "mon Top Right est fixé sur le Bottom Left du parent"
45 posparent="parent" // Definit le parent de l element pour ce qui est du positionnement
46 sizeref="" // valeurs possibles: "w", "h", "wh", "w?h?" ou ? est un facteur entre 1 et 9.
47 // Dans ce cas la taille du parent est multiplie par ce facteur puis divisee par 10.
48 // Au moment de l affichage, ajoute la taille du parent W ou/et H a celle definit par
49 // w="" et h="". example: "w2h" implique que WAffiche = W + 2*parentW/10 et que
50 // HAffiche = H + parentH
51 sizeparent="" // Indique le parent que l on prend pour le calcul des tailles WAffiche et HAffiche si cette
52 // valeur n est pas specifiee alors on prends le posparent pour le calcul de la taille
53 global_color="true" // si true modulate la couleur par la couleur globale
55 render_layer="0" // valeur de -16 à +14 decale l ordre de rendu de l élement.
56 avoid_resize_parent="false" // Si cette valeur est mise a true, un group ayant un child_resize_x ne
57 // prendra pas en compte cet element pour se resizer
60 MODIFIABLE: active (bool)
63 // ***************************************************************************
64 // ***************************************************************************
66 // ***************************************************************************
67 // ***************************************************************************
69 Une vue a un type qui est dfinit par le parametre type="".
73 MODIFIABLE: alpha (int)
75 // ***************************************************************************
76 // <view type="bitmap" />
77 // ***************************************************************************
84 color="255 255 255 255" // couleur (modulate) de la bitmap
85 texture="" // fichier de la texture
86 scale="false" // si false, le W et le H sont forcs 7 etre de la taille de la texture
87 rot="0" // definit valeur de rotation de la bitmap
93 MODIFIABLE: color (string)
99 // ***************************************************************************
100 // <view type="background" />
101 // ***************************************************************************
103 Vue DERIVANT DE <view type="bitmap" />
106 affiche une bitmap dans des textures non condenses (plusieurs textures dans une seule)
109 <view type="background"
110 txtoffsetx="0" // offset dans la texture (en haut a gauche et positif vers le bas a droite)
111 txtoffsety="24" // offset dans la texture
112 txtwidth="800" // taille de la texture
116 texture sert pour le nom de la texture toute seule
118 // ***************************************************************************
119 // <view type="text" />
120 // ***************************************************************************
127 color="255 255 255 255" // couleur (modulate) du text
130 shadow_color="0 0 0 255" // la couleur de l ombre du texte
131 hardtext="" // si present definit le text afficher. (Identifiant de localisation local)
134 justification="dont_clip_word" // clip_word : pas de justification
135 // dont_clip_word : Mots non coupés et non justifiés
136 // justified : Mots non coupés et justifiés
137 underlined="false" // sous ligne la phrase
138 case_mode="0" // Regle de majuscule
139 // 0 : CaseNormal Pas de modification majuscule minuscule
140 // 1 : CaseLower Toutes les lettres sont force en minuscule
141 // 2 : CaseUpper Toutes les lettres sont forcees en majuscule
142 // 3 : CaseFirstStringLetterUp La premiere lettre de la string est en majuscule
143 // 4 : CaseFirstSentenceLetterUp La premiere lettre de la string et des phrases
144 // suivantes (separes par un .) sont en majuscule
145 // 5 : CaseFirstWordLetterUp La premiere lettre de chaque mot est en majuscule
147 line_maxw="16384" // maximum size of the line (multiline: minimized with the current wreal of the parent)
148 multi_line_maxw_only="false" // multiline: don t minimize linemaxw with parent wreal. Use only linemaxw
150 over_extend_view_text="false" // usefull only if some line_maxw specified. if true and if the text is clipped cause
151 // of line_maxw, and if the mouse over the view text, then a special tooltip will be
152 // displayed over, to show all the text
153 over_extend_parent_rect="false" // true to use in conjunction of over_extend_view_text: the over area is the parent, not the view
154 auto_clamp="true" // when set to true, dots '...' will be added to the end of the line if the text is clipped by its parent (single line only)
155 continuous_update="true" // multiline text justification is recomputed continuously as the window parent is resized (not when the left button is released only)
156 // default is "false"
159 MODIFIABLE: hardtext (string)
160 uc_hardtext (ucstring)
161 color (string ('#r #g #b #a'))
165 NOTE: IL NE FAUT PAS mettre de sizeref sur une vue texte.
167 NOTE: Les vue textes peuvent prendre la forme de "TextFormatTagged".
168 MAIS SEULES les vues textes multilignes interprètent correctement les tags.
169 Les Tags possibles sont:
170 @{F3DF} Tag De couleur (en hexadecimal, défintion avec 0 à F (0 à 15 maxi only donc) pour chaque composante RGBA)
171 @{T10} Tag de Tabulation. Le chiffre indique l'espacement minimum (en nombre de caractère '_')
173 NOTE: Il n'est pas posssible de préciser un TextFormatTaged, autrement que par code C++, ou via la fonction LUA:
177 // ***************************************************************************
178 // <view type="text_id" />
179 // ***************************************************************************
182 Vue DERIVANT DE <view type="text" />
183 affiche un text en fonction d'un identifiant reseau (c'est une chaine de character equivalent a set_server_string (ah))
187 textid="" // lien database vers un identifiant ("UI:TEMP:VAR1") ou identifiant lui meme ("654123")
188 dynamic_string="true" // si true la phrase est composee (CStringManagerClient::getDynString),
189 // sinon c est un identifiant server (CStringManagerClient::getString)
192 MODIFIABLE: textid (int)
193 textid_dblink (string)
195 // ***************************************************************************
196 // <view type="text_number" />
197 // ***************************************************************************
200 Vue DERIVANT DE <view type="text" />
201 Affiche une entre de la database (un nombre entier) sous forme de text
204 <view type="text_number"
205 value="" // Lien vers la database pour lire la valeur OBLIGATOIRE.
209 format="false" // make the number thousands formatted
213 // ***************************************************************************
214 // <view type="text_formated" />
215 // ***************************************************************************
218 Vue DERIVANT DE <view type="text" />
219 Affiche un texte. Si le texte contient les caracteres speciaux suivant, il y a un traitement particulier
220 $p -> remplace par le nom du joueur
221 $P -> remplace par le nom du joueur en lettre capitale
222 $b -> remplace par le nom du NPC auquel le joueur est en train de parler
223 $s -> remplace par le nom du NPC auquel le joueur est en train de parler (sans le titre)
224 ui... -> remplace par la traduction i18n (puis effectue les remplacements precedent)
227 <view type="text_formated"
228 format="$b" // chaine a remplacer (par defaut chaine vide)
231 // ***************************************************************************
232 // <view type="text_id_formated" />
233 // ***************************************************************************
236 Vue DERIVANT DE <view type="text_id" />
237 Un peu dans le meme esprit que la vue text_formated. Elle possede les memes traitements particuliers que
238 text_formated auxquels il faut y rajouter :
239 $t -> remplace par la valeur du text id
242 <view type="text_id_formated"
243 format="$t" // Par defaut
244 textid="SERVER:BOTCHAT:DM_CHOICE2:TITLE"
247 // ***************************************************************************
248 // <view type="text_quantity" />
249 // ***************************************************************************
252 Vue DERIVANT DE <view type="text" />
253 Affiche un nombre de la database sous la forme "8/10" (avec donc une valeur max de la database).
254 Si le nombre est 0, cela affiche la string emptytext.
255 Par defaut emptytext="", et dans ce cas, "0/80" est affich (80 est la vraie valeur max en fait)
258 <view type="text_quantity"
259 value="" // Lien vers la database pour lire la valeur OBLIGATOIRE.
260 valuemax="" // Lien vers la database pour lire la valeur Max. OBLIGATOIRE.
261 emptytext="" // quand valeur==0, string afficher. "" veut dire affiche 0/valeurMax
264 NB : emptytext contient un identifiant de localization local
266 // ***************************************************************************
267 // <view type="digit" />
268 // ***************************************************************************
271 Vue speciale qui affiche un nombre avec des digits speciaux (bitmaps).
275 value="SERVER:...." // lien sur la database. OBLIGATOIRE
276 numdigit="2" // nombre de digit affichs (eg 00 si la valeur est nulle). Defaut:2. Min:1 et Max: 10
277 wspace="-1" // espacement en pixel entre chaque digit. Defaut: -1
278 color="255 255 255 255" // comme les boutons, blanc par defaut
281 La taille totale est automatiquement calcule en fonction du digit 0 et du nombre de digit.
282 bien sur, x,y,posref etc... marche toujours
285 // ***************************************************************************
286 // <view type="bar" />
287 // ***************************************************************************
290 Vue DERIVANT DE <view type="bitmap" />
291 affiche une valeur sous forme de bar. Pour l instant 4 versions : (normal, mini, ultra_mini et mini_thick)
292 les bitmaps utilisees sont hardcodees en c++
296 value="" // valeur courante (Valeur ou Lien DB)
297 range="" // range (Valeur ou Lien DB)
298 reference="" // Valeur soustraire de value et range (exemple: gestion de temps).(Valeur ou Lien DB)
299 color_negative="" // couleur quand les valeurs sont negatives
300 mini="true" // Affiche la version mini
301 ultra_mini="true" // Affiche la version ultra mini
302 mini_thick="true" // Affiche la version mini thick
309 value_dblink (string)
310 range_dblink (string)
311 reference_dblink (string)
313 // ***************************************************************************
314 // <view type="bar3" />
315 // ***************************************************************************
318 Vue DERIVANT DE <view type="bitmap" />
319 un peu dans le meme esprit que "bar" mais affiche directement 3 barres
346 // ***************************************************************************
347 // ***************************************************************************
349 // ***************************************************************************
350 // ***************************************************************************
352 DERIVE DE <view type="" />
353 Un control a un type qui est définit par le paramètre type="".
356 tooltip="" // aide contextuelle par defuat
357 tooltip_i18n="" // idem tooltip, mais cherche forcément la définition dans le wk.uxt,
358 // même si le texte ne commence pas par "ui"
359 on_tooltip="" // action handler qui permet de mettre une autre aide contextuelle
360 on_tooltip_params="" // les parametres de l action handler
361 instant_help="true" // Est ce que l aide contextuelle a affichee est affichee directement
363 tooltip_parent="ctrl" // "ctrl", "win" ou "mouse". Définit le parent relatif lors de l affichage
365 "ctrl" veut dire que le tooltip est callé par rapport à ce control
366 "win" veut dire que le tooltip est affiché par rapport à la fenetre
368 "mouse" veut dire que le tooltip est callé par rapport à la souris
369 tooltip_posref="auto" // Position de référence du tooltip par rapport à son parent (cf tooltip_parent)
370 "auto" la posution de référence est chosie intelligement suivant le
372 "ctrl": "TL BR" ou "TR BL" suivant que la fenetre contenant
373 le control est plus à gauche ou à droite
374 "win": "TL BL" ou "BL TL" suivant que la fenetre contenant
375 le control est plus en haut ou en bas
377 "TL BR" (ou toute autre position de référence possible): calage fixe
381 MODIFIABLE: alpha (int)
383 // ***************************************************************************
384 // <ctrl type="tooltip" />
385 // ***************************************************************************
388 Control qui dérive simplement de ctrl_base, et qui ne gère aucun évenement et n'affiche rien.
389 Son seul but est d'avoir une zone pour afficher un tooltip quand on passe dessus.
392 <ctrl type="tooltip" />
395 // ***************************************************************************
396 // <ctrl type="button" />
397 // ***************************************************************************
400 boutton, push, radio ou toggle.
404 button_type="toggle_button" // type du boutton: "toggle_button", "push_button" ou "radio_button"
405 pushed="false" // etat pushed par defaut
406 color="255 255 255 255" // couleur etat normal
407 col_pushed="255 255 255 255" // couleur quand pushed
408 col_over="255 255 255 255" // couelur quand over
409 global_color_normal="" // remplace le setup global_color pour l etat normal du bouton
410 global_color_pushed="" // remplace le setup global_color pour l etat pushed du bouton
411 global_color_over="" // remplace le setup global_color pour l etat over du bouton
412 tx_normal="" // texture etat normal
413 tx_pushed="" // texture etat pushed
414 tx_over="" // texture etat over
416 onclick_l="" // action à lancer sur un click gauche
417 params_l="" // parametres de l action à lancer sur un click gauche
418 onlongclick_l="" // action a lancer sur un click long
419 params_longclick_l=""
420 onclick_r="" // action à lancer sur un click droit
421 params_r="" // parametres de l action à lancer sur un click droit
422 align="" // si pas de scale et que zone définie plus grande que l image
423 menu_l="" // context menu à afficher sur un click bouton gauche (voir group de type menu)
424 menu_r="" // context menu à afficher sur un click bouton droit (voir group de type menu)
425 menu_b="" // context menu à afficher sur un click bouton droit ou gauche (voir group de type menu)
426 frozen="false" // button is frozen
429 MODIFIABLE: pushed (bool)
430 col_normal (string ('#r #g #b #a'))
431 col_over (string ('#r #g #b #a'))
432 col_pushed (string ('#r #g #b #a'))
433 col_normal_rgba (rgba)
435 col_pushed_rgba (rgba)
440 texture_pushed (string)
441 texture_over (string)
444 // ***************************************************************************
445 // <ctrl type="text_button" />
446 // ***************************************************************************
449 boutton, push, radio ou toggle.
452 <ctrl type="text_button"
453 button_type="toggle_button" // type du boutton: "toggle_button", "push_button" ou "radio_button"
454 pushed="false" // etat pushed par defaut
455 color="255 255 255 255" // couleur etat normal
456 col_pushed="255 255 255 255" // couleur quand pushed
457 col_over="255 255 255 255" // couelur quand over
458 global_color_normal="" // remplace le setup global_color pour l etat normal du bouton
459 global_color_pushed="" // remplace le setup global_color pour l etat pushed du bouton
460 global_color_over="" // remplace le setup global_color pour l etat over du bouton
463 // contrairement aux boutons, ici il faut mettre seulement "textb_normal" par exemple.
464 // les "_l.tga", "_m.tga", "_r.tga" etant ajoutees automatiquement pour trouver respectivement les parties
465 // gauches, millieu (celle qui est scalée en X) et droite.
467 tx_normal="" // texture etat normal.
468 tx_pushed="" // texture etat pushed.
469 tx_over="" // texture etat over.
470 onclick_l="" // action à lancer sur un click gauche
471 params_l="" // parametres de l action à lancer sur un click gauche
472 onlongclick_l="" // action a lancer sur un click long
473 params_longclick_l=""
474 onclick_r="" // action à lancer sur un click droit
475 params_r="" // parametres de l action à lancer sur un click droit
476 menu_l="" // context menu à afficher sur un click bouton gauche (voir group de type menu)
477 menu_r="" // context menu à afficher sur un click bouton droit (voir group de type menu)
478 menu_b="" // context menu à afficher sur un click bouton droit ou gauche (voir group de type menu)
486 // Comportement Special des Couleurs des Textes
487 text_color_normal="255 255 255 255"
488 text_color_pushed="255 255 255 255"
489 text_color_over="255 255 255 255"
490 text_shadow_color_normal="0 0 0 255"
491 text_shadow_color_pushed="0 0 0 255"
492 text_shadow_color_over="0 0 0 255"
493 text_global_color_normal=""
494 text_global_color_pushed=""
495 text_global_color_over=""
498 text_y="" // décalage du texte en Y rapport au bouton (-2)
499 wmargin="" // taille à ajouter au texte pour avoir la taille du bouton
500 wmin="" // taille minimum du bouton
504 MODIFIABLE: pushed (bool)
505 col_normal (string ('#r #g #b #a'))
506 col_over (string ('#r #g #b #a'))
507 col_pushed (string ('#r #g #b #a'))
508 col_normal_rgba (rgba)
510 col_pushed_rgba (rgba)
514 uc_hardtext (ucstring telle quelle)
515 hardtext (string qui va etre localisee)
518 // ***************************************************************************
519 // <ctrl type="scroll" />
520 // ***************************************************************************
528 tx_bottomleft="" // Les textures du bouton (pas de background affiche) (bottom or left)
530 tx_topright="" // top or right (ca depends si la sb est verticale)
532 vertical="" // Est ce que c est une sb verticale ou horizontale
533 align="" // T, B, L ou R
535 value="" // Value entree de DB ou nombre (si pas present alors la sb est linke a une target)
536 min="" // Si la sb n est pas linke a une target alors le nombre qu elle
537 // represente varie de min a max
538 tracksize="" // Taille de la track bar (le boutton)
540 onscroll="" // Action Handler appele lorsque la sb est deplacee
541 onscrollend="" // Appele quand on arrete de scroller
544 target="" // Si la sb n est pas linke a une value alors elle peut etre linke a un group. Dans ce cas
545 // le group est se deplace dans la limite de ses max_w et max_h relativement a ses w et h.
546 target_stepx="" // Donne la quantite de pixel a deplacer en une fois. Ce qui permet par exemple dans les
547 target_stepy="" // listes de sheet d etre cale sur un sheet
551 // ***************************************************************************
552 // <ctrl type="sheet" />
553 // ***************************************************************************
556 affiche un boutton spécial d'item, brique etc...
560 value="" // Lien vers la database. OBLIGATOIRE.
561 // example: SERVER:INVENTORY:8:1. NB: lien vers une branche de la database
562 // qui DOIT contenir SHEET, et peut avoir QUANTITY et/ou QUALITY
563 nature="item" // "item", "brick", "spell"
564 brick_type="" // "COMBAT", "MAGIC". may be important for some filter (memory...)
565 // Can also put multiple filter like this: "COMBAT|MAGIC|HARVEST"
567 col_noitem="true" // "true": quand pas d item, modulate la couleur avec la couelur globale
569 onclick_l="" // action à lancer sur un click gauche
570 params_l="" // parametres de l action à lancer sur un click gauche
571 onclick_r="" // action à lancer sur un click droit
572 params_r="" // parametres de l action à lancer sur un click droit
574 menu_l="" // context menu à afficher sur un click bouton gauche (voir group de type menu)
575 menu_r="" // context menu à afficher sur un click bouton droit (voir group de type menu)
576 menu_b="" // context menu à afficher sur un click bouton droit ou gauche (voir group de type menu)
578 dragable="false" // drag and drop able?
579 oncandrop="" // Action a lancer pour savoir si on peut Droper sur moi.
581 ondrop="" // Action a lancer sur un drop sur moi
584 use_quantity="true" // display the Item Quantity
585 use_quality="true" // display the Item Quality
586 duplicate_on_drag="false" // when drag a sheet (item only), leave the bitmap in the original slot
587 use_slot_type_db_entry="false" // Automatic Type.
589 grayed="false" // init the sheet as grayed or not
590 auto_grayed="false" // Gray auto the sheet according to Item LOCKED state or Brick LATENT state
591 slot="true" // Draw the slot
595 sheet (string) (correspond a la value le lien vers la DB)
603 // ***************************************************************************
604 // <ctrl type="colpick" />
605 // ***************************************************************************
608 affiche une image pour choisir que l on puisse choisir une couleur dedans
612 texture="color_palette.tga" // La texture a utiliser (texture non groupee!)
613 onchange="proc" // Action a lancer des que la couleur selectionnee change
614 onchange_params="proc_col_change" // Les parametres de l action
615 dbcolr="UI:TEMP:COL:R" // .
616 dbcolg="UI:TEMP:COL:G" // .
617 dbcolb="UI:TEMP:COL:B" // .
618 dbcola="UI:TEMP:COL:A" // Liens direct avec la database de la couleur selectionnee
621 MODIFIABLE: r, g, b, a (int) les composantes de la couleur selectionnee
622 color (string ('#r #g #b #a'))
626 // ***************************************************************************
627 // ***************************************************************************
629 // ***************************************************************************
630 // ***************************************************************************
632 // ***************************************************************************
634 // ***************************************************************************
637 DERIVE DE <ctrl type=""/>
638 Définit un group qui pourra contenir des groups, des controls ou des vues.
639 Aucun affichage n'est fait sinon celui des fils
640 Pour qu'un groupe soit affiché, il faut qu'il apparaisse dans les <tree node="">
644 overlappable="true" // Recupere les evenements
645 child_resize_w="false" // si true, resize le groupe en W selon ses fils.
646 child_resize_h="false" // si true, resize le groupe en H selon ses fils.
647 child_resize_wmargin="0" // si child_resize_w="true" ajoute une marge à la largeur totale des fils
648 child_resize_hmargin="0" // si child_resize_h="true" ajoute une marge à la hauteur totale des fils
649 on_active="" // nom d un handler appelé quand la fenetre est activée
650 on_active_params="" // parametre passé au handler quand la fenetre est activée
651 on_deactive="" // nom d un handler appelé quand la fenetre est désactivée
652 on_deactive_params="" // parametre passé au handler quand la fenetre est sactivée
653 on_enter="" // windows et modal only: Gere l evenement entree : Quand on appuie sur enter (return)
654 on_enter_params="" // windows et modal only: Les parametres de l evenement entree
655 escapable="false" // windows only: true : ferme la fenetre si ESC appuyée.
657 max_w="" // max_w et max_h definisse la taille maximum a afficher tandis que w et h definsse la
658 max_h="" // taille du document (qui est a l interieur et peut donc etre scolle)
669 MODIFIABLE: ofsx (int)
672 // ***************************************************************************
673 // <group type="list">
674 // ***************************************************************************
681 addelt="B" // "B", "T", "L" ou "R"
682 align="L" // "B", "T", "L" ou "R"
696 over="false" // doit on afficher la selection sous la souris
697 col_over="255 255 255 32" // la couleur de la selection
700 hardtext="uiAZE" // init la liste avec un texte a identifiant de localisation local
701 textid="654" // init la liste avec un texte a identifiant de localisation reseau
705 // ***************************************************************************
706 // <group type="container">
707 // ***************************************************************************
712 Afficher un container
715 <group type="container"
716 localize="" // Def:true est ce que le titre doit etre localise ?
721 header_color="UI:SAVE:MYCOLOR" // db col entry
723 movable="false" // true == on peut bouger la fenetre
724 popable="false" // true == la fenetre peut se detacher de son container parent
725 lockable="" // Def:true
726 locked="" // Def:false
727 openable="true" // peut on ouvrir le container en clickant sur la barre de titre
728 opened="false" // l etat initial en ouverture
729 open_when_popup="false" // Ouvre le container quand on le popup (le ferme quand popin)
730 resizer="true" // est ce que l on peut resizer la fenetre
732 on_open="" // nom dun handler appelé quand le container est ouvert
733 on_open_params="" // parametre passé au handler quand le container est ouvert
734 on_close="" // nom dun handler appelé quand le container est fermé
735 on_close_params="" // parametre passé au handler quand le container est fermé
738 on_deactive_check_params=""
748 movable_in_parent_list=""
749 savable="true" // true == la fenetre est sauvegardée sur disque et est dépendente des modes.
752 options="" // nom des options a utilisees (pas fonction d un layer)
755 MODIFIABLE: title, title_opened, title_closed (string)
756 uc_title_opened, uc_title_closed, uc_title (ucstring)
759 openable, opened (bool)
760 lockable, locked (bool)
762 Note: si global_color est à true le bouton et le titre sont colorés par la couleur globale
764 // ***************************************************************************
765 // <group type="frame">
766 // ***************************************************************************
771 comme un group mais affiche un cadre et un fond (fixé: bitmaps de la modal).
775 display="false" // si false n affiche pas la frame (true par defaut)
776 color="255 255 255 255"
779 MODIFIABLE: color (string ('#r #g #b #a'))
781 // ***************************************************************************
782 // <group type="modal">
783 // ***************************************************************************
785 Herite du group de type "frame" (affiche donc un cadre)
788 Affiche une fenetre qui pourra etre ouverte sur une action. Cachée par defaut (active=false)
789 NOTE: un group modal NE DOIT PAS être défini dans les <tree node="">.
790 En fait ils sont automatiquement ajoutés
791 NB: par defaut les modals sont ESCAPABLE
795 mouse_pos="true" // si "true", Spawn la fenetre sur la position de la souris, en suivant posref""
796 // par exemple posref="BL TL" positionnera le coin TL de la fenetre sur la souris.
797 // NB: BL (posref du parent) est donc ignorée ici
798 exit_click_out="true" // si "true" la fenetre modal est fermeé si on clique à l exteriru
799 exit_click_l="false" // si "true" la fenetre modal est fermeé si on clique sur le bouton gauche
800 // (après lancement eventuelle action de la modal)
801 exit_click_r="false" // si "true" la fenetre modal est fermeé si on clique sur le bouton droit
802 // (après lancement eventuelle action de la modal)
803 exit_click_b="false" // equivalent à exit_click_l="val" ET exit_click_r="val" (val: true ou false)
804 exit_key_pushed="false" // Close the modal if a key is pushed
806 force_inside_screen="false" // Clip la fenetre à l interieur de l ecran. Note: automatique si mouse_pos="true"
808 onclick_out_params=""
811 certains actions handlers prennent un id de window en paramètre (eg: "ui:interface:taskbar"). L'id spécial
812 se nommant "ctrl_launch_modal" désigne en fait le bouton ou le control qui a fait ouvrir la fenetre modal.
815 Un control sheet dans une fenetre modal echange son sheet id avec le ctrl sheet qui a ouvert la modal:
816 <ctrl type="sheet" onclick_l="exchange" params_l="src=ctrl_launch_modal">
818 Dans le xml, il faut bien faire attention a ce que les modals soient a la racine sinon elles peuvent
819 etre affichées plusieurs fois. Il ne faut pas non plus qu'elles soient ajoutées en tant que node dans un <tree>
822 // ***************************************************************************
823 // <group type="menu">
824 // ***************************************************************************
826 Herite du groupe de type "modal"
829 Affiche un menu contextuel
833 <group type="menu" id="cm_byes"
834 context="true" // "false" si doit etre utilisé (et donc affiché) dans un autre groupe
835 // et non tout seul (sur un menu_r de bouton par exemple)
836 color="255 255 255 255" // couleur du texte
837 shadow_color="0 0 0 255" // couleur de l ombre du texte (noire par defaut)
840 color_over="255 255 255 255" // couleur du texte quand survole de la souris dessus
841 shadow_color_over="0 0 0 255" // couleur de l ombre du texte quand survole de la souris (noire par defaut)
842 highlight_over="128 0 0 255" // higlight sous le texte quand survolé. Mettre A=0 pour rien.
843 color_grayed="128 128 128 255" // couleur du texte quand celui ci est inactif
844 shadow_color_grayed="0 0 0 255" // couleur de l ombre du texte quand celui ci est inactif
846 <action // Une action est une ligne de menu (ou de sous menu) (ici cette action possède un sous menu)
847 id="aze" // Identifiant facultatif si absent, l id est la position dans le menu (a partir de 0)
848 name="Action1" // Nom localise et affiche
849 handler="" // handler appele si la ligne est clickee (meme en cas de sous menu)
850 params="" // Les paramètres du handler
851 grayed="true" // est ce que la ligne est grisée ? facultatif
852 usergroup_l="" // Nom d un template pour mettre un groupe a gauche du texte
853 usergroup_params_l="" // Parametres du template delimites par des | (...params_l="posref=TL TL|x=5" )
854 usergroup_r="" // Pareil a droite
855 usergroup_params_r=""
857 <action name="imbriquee" handler="" params="" /> // Ligne simple
864 MODIFIABLE: pour une action : grayed, checked et tous les modifiables d une vue texte
865 on peut recuperer les usergroup en faisant comme d'habitude menuid:actionid:usergroupid
867 // ***************************************************************************
868 // <group type="list_sheet">
869 // ***************************************************************************
872 affiche une liste variable de ctrl_sheet
875 <group type="list_sheet" id="pipo0"
877 value="SERVER:INVENTORY:8" // Pointe sur une branche de la database. OBLIGATOIRE
878 // Les fils doivent etre de type #number:SHEET (optionnel #number:QUALITY et #number:QUANTITY).
880 wspace="2" hspace="2" // donne l espacement entre chaque slot. 0 par defaut
882 maxitem="12" // donne le nombre maximum d item lu dans la branch (eg: 6 pour un bag).
883 // Nb: temporaire??, normalement c la database qui donne ce nombre. Defaut: infini
885 startitem="12" // donne l id de départ dans la database. utile pour les bag (bag0: 0, bag1: 6, bag2: 12, etc...)
887 array="false" // si "false", les sheet vides ne sont pas affichés. defaut: "true"
889 lmargin="12" // Marges left, right Top et bottom des slots par rapport au group. Defaut:0. Il Faut en mettre si ya une scrollBar et des bouton +- forcément...
894 rowmin="0" // Nombre de ligne minium affichées. Defaut: 1.
895 // Important si on veut par exemple afficher la liste des malus vide sans que le groupe se resize à H=0 (vide)
897 rowmax="2" // Nombre de ligne maximum affichés. Defaut: infini.
898 // Important si on veut afficher qu une seule ligne toujours (pour les malus par exemple)
899 // quelque soit la largeur du parent. C est cette valeur qui est éditée par les boutons +- (si présents)
901 column_max="4294967295" // taille maximum du nombre de sheet par ligne
902 column_factor="1" // si 3 par exemple, le nombre de sheet par ligne ne pourra etre que 3,6,9...
903 column_center="false" // si true, centre les sheet en X suivant le WReal donnée par list_sheet
905 // Paramètres communs au ctrl type="sheet". Voir ce control pour les détails
928 // Le mode "Resize" n'existe pas en fait. Le scripteur est libre de mettre ou pas une scroll bar et/ou des boutons qui permettent de changer rowmax
930 <ctrl type="button" id="add_row" button_type="push_button" posref="TR TR" tx_normal="W_arrow_up_3.tga" tx_pushed="W_arrow_up_3.tga" tx_over="W_button_08_over.tga" />
931 <ctrl type="button" id="sub_row" button_type="push_button" posparent="add_row" posref="TL TR" tx_normal="W_arrow_down_3.tga" tx_pushed="W_arrow_down_3.tga" tx_over="W_button_08_over.tga" />
933 // Setup tyipque de scrollBar. L'alignement est hardocé pour etre Top. Le y devrait etre egal à "-tmargin" du group list_sheet
935 <ctrl type="scroll" id="scroll_row" posref="TL TL" w="8" x="2" y="12"
936 <!-- choix des textures de la scroll -->
937 tx_bottomleft= "w_scroll_l123_b.tga"
938 tx_middle= "w_scroll_l123_m.tga"
939 tx_topright= "w_scroll_l123_t.tga"
944 MODIFIABLE: nbelt (int en lecture seul !) le nombre d'element valide si array=false sinon maxelt
946 // ***************************************************************************
947 // <group type="list_job">
948 // ***************************************************************************
951 affiche un tableau de familles de métier avec la bonne brick.
952 sont grand pere DOIT etre un container (pour initialiser son nom)
955 <group type="list_job"
957 brick_type="" // MAGIC, COMBAT, FABER,... Obligatoire!!
958 career="" // index OBLIGATOIRE de la carriere
959 job="" // index OBLIGATOIRE du job. -1 si "all"
960 level="" // varaible database qui donne le level du joueur dans ce job. OBLIGATOIRE
961 wspace="0" // donne l espacement entre chaque slot. 0 par defaut
962 hspace="0" // donne l espacement entre chaque slot. 0 par defaut
963 lmargin="0" // Marges left, right Top et bottom des slots par rapport au group. Il Faut en mettre si ya des bouton +- forcément...
968 list_sentence="" // Pour la magie Pointe vers un group de type="list_sentence". Utilise pour savoir
969 // ou sont ajoutés les sentences nouvelles.
971 // Paramètres communs au ctrl type="sheet". Voir ce control pour les détails
973 nature="" // la nature n est pas necessaire ici. C est FORCEMENT une "brick"
987 // Boutons pour changer le niveau de brick voulu
989 <ctrl type="button" id="add_level" button_type="push_button" posref="TR TR" tx_normal="W_arrow_up_3.tga" tx_pushed="W_arrow_up_3.tga" tx_over="W_button_08_over.tga" />
990 <ctrl type="button" id="sub_level" button_type="push_button" posparent="add_row" posref="TL TR" tx_normal="W_arrow_down_3.tga" tx_pushed="W_arrow_down_3.tga" tx_over="W_button_08_over.tga" />
992 // vue qui affiche le niveau selectionné
994 <view type="text" id="view_level" />
996 // group de décoration qui affiche un fond derriere le texte (sert pour le scroll des levels à la molette)
997 <group id="box_text" />
1000 // ***************************************************************************
1001 // <group type="select_number">
1002 // ***************************************************************************
1005 widget qui sert pour augmenter et diminuer un nombre de la database
1008 <group type="select_number"
1009 value="" // lien vers la database. OBLIGATOIRE
1014 <view type="text" id="number" /> // une vue qui permettra d'afficher le nombre
1015 <ctrl type="button" id="arrow_up" /> // boutton pour incrémenter
1016 <ctrl type="button" id="arrow_down" /> // boutton pour décrémenter
1020 // ***************************************************************************
1021 // <group type="scroll_text">
1022 // ***************************************************************************
1025 widget servant à afficher des lignes de chat ou autres défilant, avec une scrollBar et des boutons pour augmenter
1026 la taille de la fenetre
1029 <group type="scroll_text"
1032 invert_scroll_bar="true"
1034 <ctrl type="scroll" id="scroll_bar"/>
1035 <ctrl type="button" id="button_add"/>
1036 <ctrl type="button" id="button_sub"/>
1037 <group type="list" id="text_list"/>
1041 // ***************************************************************************
1042 // <group type="editbox" />
1043 // ***************************************************************************
1049 <group type="edit_box"
1050 onenter="" // Action a lancer quand ENTER est pressé
1051 params="" // paramètres de l Action a lancer quand ENTER est pressé
1054 enter_loose_focus="true" // si enter perd le focus
1055 max_num_chars="oo" // chars maxi (infini par defaut)
1057 entry_type="" // text, integer, positive_integer, alpha, alpha_num, password
1059 max_historic="0" // Si !=0 enable l historique de l editBox (4Dos like). Sinon donne la taille de l historique
1061 <view id="edit_text" type="text">
1064 MODIFIABLE: input_string (string)
1065 uc_input_string (ucstring)
1068 // ***************************************************************************
1069 // <group type="build_sentence_magic" />
1070 // ***************************************************************************
1073 Widget de composition de magie
1076 <group type="build_sentence_magic" >
1078 <ctrl type="sheet" id="root_brick" nature="brick" />
1080 <vector template="ctrl_brick_mandatory" id="mandatory_brick$i" _size="%BRICKS_PER_SENTENCE" index="$i" />
1082 <vector template="ctrl_brick_optional" id="optional_brick$i" _size="%BRICKS_PER_SENTENCE" index="$i" />
1084 // bouton de validation
1085 <ctrl type="button" id="valid_button" />
1089 // ***************************************************************************
1090 // <group type="build_sentence_faber" />
1091 // ***************************************************************************
1094 Widget de composition de magie
1097 <group type="build_sentence_faber" >
1099 <ctrl type="sheet" id="root_brick" nature="brick" />
1101 <vector template="ctrl_brick_optional" id="optional_brick$i" _size="%BRICKS_PER_SENTENCE" index="$i" />
1102 // bouton de validation
1103 <ctrl type="button" id="valid_button" />
1106 <ctrl type="sheet" id="tool" nature="item" />
1108 <vector template="ctrl_faber_mp" id="mp$i" _size="%MAX_FABER_REQ_MP" index="$i" />
1110 <group type="select_number" id="select_num_items" value="bricks:faber:num_items" loop="false" min="1" max="1" >
1116 // ***************************************************************************
1117 // <group type="list_sentence" />
1118 // ***************************************************************************
1121 Widget d'affichage des sentence connues. cf list_job pour le lien "list_sentence"
1125 <group type="list_sentence" id="pipo0"
1127 wspace="2" hspace="2" // donne l espacement entre chaque slot. 0 par defaut
1129 lmargin="12" // Marges left, right Top et bottom des slots par rapport au group. Defaut:0. Il Faut en mettre si ya une scrollBar et des bouton +- forcément...
1134 rowmin="0" // Nombre de ligne minium affichées. Defaut: 1.
1135 // Important si on veut par exemple afficher la liste des malus vide sans que le groupe se resize à H=0 (vide)
1137 rowmax="2" // Nombre de ligne maximum affichés. Defaut: infini.
1138 // Important si on veut afficher qu une seule ligne toujours (pour les malus par exemple)
1139 // quelque soit la largeur du parent. C est cette valeur qui est éditée par les boutons +- (si présents)
1141 sep_slot0="" // Image pour le separateur Root-Mandatory
1142 sep_slot1="" // Image pour le separateur Mandatory-Optional
1143 sep_w0="0" // décalage Root-Mandatory
1144 sep_w1="0" // décalage Mandatory-Optional
1146 selected_color="255 255 255 255" // couleur du highlight de la sentence selectionnée
1148 // Paramètres communs au ctrl type="sheet". Voir ce control pour les détails
1150 nature="" // forcé en type brick
1166 // Le mode "Resize" n'existe pas en fait. Le scripteur est libre de mettre ou pas une scroll bar et/ou des boutons qui permettent de changer rowmax
1168 <ctrl type="button" id="add_row" button_type="push_button" posref="TR TR" tx_normal="W_arrow_up_3.tga" tx_pushed="W_arrow_up_3.tga" tx_over="W_button_08_over.tga" />
1169 <ctrl type="button" id="sub_row" button_type="push_button" posparent="add_row" posref="TL TR" tx_normal="W_arrow_down_3.tga" tx_pushed="W_arrow_down_3.tga" tx_over="W_button_08_over.tga" />
1171 // Setup tyipque de scrollBar. L'alignement est hardocé pour etre Top. Le y devrait etre egal à "-tmargin" du group list_sheet
1173 <ctrl type="scroll" id="scroll_row" posref="TL TL" w="8" x="2" y="12"
1174 <!-- choix des textures de la scroll -->
1175 tx_bottomleft= "w_scroll_l123_b.tga"
1176 tx_middle= "w_scroll_l123_m.tga"
1177 tx_topright= "w_scroll_l123_t.tga"
1181 // ***************************************************************************
1182 // <group type="combo_box" />
1183 // ***************************************************************************
1186 affiche une combo_box. Un bouton sur un texte qui fait apparaitre un menu de selection de texte quand on clique dessus
1190 <group type="combo_box"
1191 value="" // Valeur de la database qui indique l index de selection de la comboBox.
1192 on_select_start="" // optionnel. ActionHandler appelé après ouverture des choix de la combo box
1194 // Text qui affiche le choix courant.
1195 <view type="text" id="text" />
1196 // Boutton qui sert pour ouvrir la liste.
1197 <ctrl type="button" button_type="push_button" id="select" />
1198 // ajoute un choix pour la combo_box
1199 <combo_text name="" />
1202 Note: il faut que "ui:interface:combo_box_select_menu" soit définie comme un <group type="menu"> avec
1203 les paramètres d'aspect que l'on veut. Les champs actions sont remplies quand la combo_box est ouverte
1206 Ce setup permet de faire une combo box ou le bouton est invisible et recouvre en fait tout le group:
1207 si on clique sur le texte, on ouvre alors la liste de choix.
1209 <group type="combo_box" id="combo1" w="100" h="18"
1210 value="UI:COMBO_SELECT1"
1212 // un cadre juste pour faire joli
1213 <instance template="box_widget" id="back" sizeref="wh" w="0" h="0" />
1216 <view type="text" id="text" posref="ML ML" x="2" />
1217 // Note pas de texture définie sauf l'over: c fait exprès.
1218 <ctrl type="button" button_type="push_button" id="select" sizeref="wh" w="0" h="0" col_over="255 255 255 128" tx_over="blank.tga" scale="true" />
1220 <combo_text name="choix 1" />
1221 <combo_text name="choix 2" />
1222 <combo_text name="choix 3" />
1223 <combo_text name="choix 4" />
1227 // ***************************************************************************
1228 // <group type="tree" />
1229 // ***************************************************************************
1234 affiche un arbre (comme un menu)
1237 <group type="tree" id="pipo" col_over="255 255 255 128" col_select="255 128 128 128" fontsize="12" >
1238 <node id="invit" name="uimGcmInvit" handler="" params="" />
1239 <node id="harvest1" name="uimGcmHarvest" opened="true" >
1240 <node id="dig" name="uimGcmDigging"/>
1241 <node id="har" name="uimGcmHarvesting"/>
1245 Sur les nodes qui contiennent des fils on peut setuper la valeur de départ à ouvert ou fermé
1247 // ***************************************************************************
1248 // <group type="html" />
1249 // ***************************************************************************
1252 error_color="255 0 0" // Error color
1253 link_color="128 128 255" // Link color
1254 text_color="255 255 255" // Text color
1255 h1_color="128 255 255" // Headline 1 color
1256 h2_color="255 128 255" // Headline 2 color
1257 h3_color="255 255 128" // Headline 3 color
1258 h4_color="255 255 255" // Headline 4 color
1259 h5_color="255 255 255" // Headline 5 color
1260 h6_color="255 255 255" // Headline 6 color
1261 error_color_global_color="false" // Error uses global color
1262 link_color_global_color="false" // Link uses global color
1263 text_color_global_color="false" // Text uses global color
1264 h1_color_global_color="false" // Headline 1 uses global color
1265 h2_color_global_color="false" // Headline 2 uses global color
1266 h3_color_global_color="false" // Headline 3 uses global color
1267 h4_color_global_color="false" // Headline 4 uses global color
1268 h5_color_global_color="false" // Headline 5 uses global color
1269 h6_color_global_color="false" // Headline 6 uses global color
1270 text_font_size="12" // Text font size
1271 h1_font_size="24" // Headline 1 font size
1272 h2_font_size="20" // Headline 2 font size
1273 h3_font_size="16" // Headline 3 font size
1274 h4_font_size="16" // Headline 4 font size
1275 h5_font_size="16" // Headline 5 font size
1276 h6_font_size="16" // Headline 6 font size
1277 paragraph_begin_space="12" // Space between paragraphs
1278 multi_line_space_factor="0.25" // Space between 2 lines of a paragraph. Factor of the font size
1279 td_begin_space="0" // Space at the beginning of a table cell
1280 li_begin_space="4" // H space when "<IL>"
1281 ul_begin_space="12" // H space when "<UL>"
1282 li_indent="-10" // W space when "<LI>"
1283 ul_indent="30" // W space when "<UL>"
1284 form_text_area_group="edit_box_widget" // The group to instanciate for a form edit box. It must have a child group CGroupEditBox* with the id "eb"
1285 checkbox_bitmap_normal="checkbox_normal.tga" // The "off" bitmap use in form checkbox
1286 checkbox_bitmap_pushed="checkbox_pushed.tga" // The "on" bitmap use in form checkbox
1287 checkbox_bitmap_over="checkbox_over.tga" // The "over" bitmap use in form checkbox
1288 background_bitmap_view="bg" // The name of the child bitmap view used for background
1289 home="http://www.nevrax.org" // The home url (you can browsse to the home url with the url "home"
1290 browse_next_time="false" // If true, the url is browsed when the group is created
1294 // ***************************************************************************
1295 // <group type="quick_help" /> (derived from HTML)
1296 // ***************************************************************************
1298 <group type="quick_help"
1299 non_selected_color="255 0 0" // The unselected paragraphes color
1300 non_selected_link_color"0 0 128" // The unselected link color
1301 non_selected_global_color="true" // The unselected paragraphes uses gobal color
1302 non_selected_font_size="10" // The unselected paragraphes font size
1306 // ***************************************************************************
1307 // <group type="in_scene" /> (derived from group)
1308 // ***************************************************************************
1310 <group type="in_scene"
1311 in_scene_offset_x="12" // Offset in pixels
1312 in_scene_offset_y="12" // Offset in pixels
1316 // ***************************************************************************
1317 // <group type="table" /> (derived from group)
1318 // ***************************************************************************
1322 The table is essentially an array. Each line must have the same number of cells.
1323 The width of the table can be arbitrary. Either sizeref="w" or a fixed w can be used.
1324 using child_resize_w has undefined results.
1325 The height or the table is imposed by its children cells (like with html table)
1327 Table is specified using the standard <TR> & <TD>
1329 // option for the table :
1330 border : the same the html tables 'border'
1331 cellpadding : the same the html tables 'cellpadding'
1332 cellspacing : the same the html tables 'cellspacing'
1333 bgcolor : background color with format "R G B A" ("255 0 0 255" for example)
1334 width : wanted width of table in pixels (same than html "width"). could be a ratio like "100%"
1335 usually the table will specify sizeref="w" or w and width="100%"
1336 continuous_update : whan set to true, the table will be updated continuously has its parent container is resized, and not when mouse left button is released only
1338 // options for the cells (<TD> tag)
1339 Cells can have an id. If none is given a id like cell_1_2 id generated (first number is column, second is row)
1340 align : horizontal alignment of cell content. Can be "left", "right" or "center" (same than HTML 'align')
1341 valign : vertical alignment of cell content. Can be 'top", "middle" or "bottom" (same than HTML 'valign')
1342 left_margin : offset added to the x position of the cell content
1343 nowrap : same then htlm table 'nowrap'
1344 bgcolor : color of the cell background (with the "R G B A" format)
1345 width : same then htlm table 'width' : gives width of column for that cell, or a percentage
1346 add_child_w : take the wanted size from the size of the children (equivalent to child_resize_h), and add the 'width' (not added if a percentage)
1347 height : minimum height of the cell
1348 ignore_max_width : if "true", the cell content max_used_w is ignored when computing the width of the cell
1349 ignore_min_width : if "true", the cell content min_used_w is ignored when computing the width of the cell
1353 <group type="table" id="my_table" posref="TL TL" sizeref="w" width="100%" border="2" bgcolor="0 255 0 255" y="-4"
1356 continuous_update="true"
1360 <TD width="30%" bgcolor="0 0 0 127" height="30" align="center" valign="middle" id="optionnal_id">
1361 <view type="text" id="mon_text" global_color="true" fontsize="20" shadow="true" hardtext="cell 1 cell 1 cell 1 cell 1"
1365 <TD bgcolor="255 0 0 127" height="30" align="center" valign="middle">
1366 <view type="text" id="mon_text" global_color="true" fontsize="20" shadow="true" hardtext="cell 2"/>
1370 <TD width="30%" bgcolor="0 0 0 192" height="30" align="center" valign="middle">
1371 <view type="text" id="mon_text" global_color="true" fontsize="20" shadow="true" hardtext="cell 3"/>
1373 <TD bgcolor="0 0 255 192" height="30" align="center" valign="middle">
1374 <view type="text" id="mon_text" global_color="true" fontsize="20" shadow="true" hardtext="cell 4"/>
1379 <TD width="100%" bgcolor="255 0 0 127" height="30">
1380 <view type="text" posref="TL TL" global_color="true" fontsize="20" shadow="true" hardtext="cell 2"/>
1387 // ***************************************************************************
1388 // ***************************************************************************
1389 // MISC: DEFINE, PROCEDURES, TEMPLATES, ANIM, SCENE3D, ...
1390 // ***************************************************************************
1391 // ***************************************************************************
1394 // ***************************************************************************
1396 // ***************************************************************************
1399 Permet de definir une constante.
1402 <define id="id_du_define" value="valeur_a_remplacer" />
1405 <define id="pipo_title" value="yoyo" />
1407 <group type="container" id="player" title="Hello %pipo_title" >
1410 Comme ca "Hello %pipo_title" est remplacé par "Hello yoyo"
1412 L'id du define ne peut contenir que les charactères:
1419 Du coup si vous voulez vraiment afficher un % dans une string (par exemple "25 %"), il faut l'ecrire en double "25 %%"
1422 // ***************************************************************************
1424 // ***************************************************************************
1427 Definit un action handler special qui lance des action handlers à la suite
1431 <proc id="nom_procedure" >
1432 <action handler="action_handler0" params="" />
1433 <action handler="action_handler1" params="" />
1434 <action handler="action_handler2" params="@0|@1" />
1437 les paramètres sont optionnels.
1438 un action handler peut etre lui meme une autre procedure (attention recursivité :))
1440 La procédure se lance en utilisant l'action handler "proc" avec comme paramètre "nom_procedure"
1442 La procédure peut prendre des paramètres en entrée (voir l'action handler proc pour comment faire).
1443 Pour chaque action, le champ params="" est parsé. Tout chaine de type @#, ou # est un numéro
1444 (à N chiffres) copiera alors le paramètre (simple copie de chaine) au moment de l'appel.
1446 Note: de la même facon que les % dans les define, un double @ permet de ne pas considérer l'@ comme un descripteur
1450 <proc id="select_quit_modal" >
1451 <action handler="exchange" params="src=ctrl_launch_modal" />
1452 <action handler="leave_modal" />
1457 <ctrl type="button" onclick_l="proc" params_l="select_quit_modal">
1461 <proc id="set_quit_modal" >
1462 <action handler="set" params="dblink=SERVER:PIPO|value=@0" />
1463 <action handler="leave_modal" />
1468 <ctrl type="button" onclick_l="proc" params_l="set_quit_modal|10">
1470 Dans cet exemple, sur un cliok gauche du bouton, set sera appelé avec une valeur de 10!!
1471 Notez que l'index des paramètres commence à 0.
1475 // ***************************************************************************
1477 // ***************************************************************************
1480 Definit un patron qui permet d'instancier des groups, ctrls ou vues qui se ressemblent.
1483 Definition du template:
1484 <template name="nom_du_template" ...paramètres du template...>
1485 corps du template (group, controls etc...) qui reference les paramètres du template avec #
1488 Instanciation du template:
1489 <instance template="nom_du_template" paramètres du template remplis />
1492 <!--Definit un template de nom "SNH" qui attend des paramètres id, value, loop etc... (si "" est mis à un paramètres,
1493 celui-ci doit etre défini à l'instanciation)
1495 <template name="SNH" id="" value="" loop="true" min="0" max="9" posparent="parent" posref="MM MM" x="0" y="0" w="26" h="16" >
1496 <group type="select_number" id="#id" value="#value" loop="#loop" min="#min" max="#max" x="#x" y="#y" w="#w" h="#h" posparent="#posparent" posref="#posref" >
1497 <view type="bitmap" id="slot_number" posref="TL TL" texture="W_slot_number.tga" />
1498 <view type="text" id="number" posparent="slot_number" posref="MM MM" color="255 255 255 255" fontsize="12" shadow="true" hardtext="0" />
1499 <ctrl type="button" id="arrow_up" button_type="push_button" posref="TR TR" tx_normal="W_arrow_up_3.tga" tx_pushed="W_arrow_up_3.tga" tx_over="W_button_08_over.tga" />
1500 <ctrl type="button" id="arrow_down" button_type="push_button" posref="BR BR" tx_normal="W_arrow_down_3.tga" tx_pushed="W_arrow_down_3.tga" tx_over="W_button_08_over.tga" />
1504 <!--Instancie le template SNH
1506 <instance template="SNH" id="shortnumber" value="SERVER:USER:SAP" loop="true" min="0" max="9" posref="ML ML" />
1509 // ***************************************************************************
1511 // ***************************************************************************
1514 Create an array of template's instances (mutli instance version of <instance>)
1518 template="template_name" // as in <instance....
1519 _size="" // required. number of isntance to create
1520 _firstindex="0" // optional to begin the index of instance to a number!=0
1522 // Next ones are required only if the template is a serie of interface elements (group, view....)
1523 // that need to be sticked against each other (eg: a vertical array of view text)
1524 _firstpos="" // posref (TL TL...) of the first element, sticked to the parent
1525 _nextpos="" // posref (TR TL...) of next elements, sticked to the previous one
1526 _xfirst="" // special x of the first element
1527 _yfirst="" // special y of the first element
1530 Then for each instance created, All properties of the XML node are parsed, and $i are replaced with the index of the instance
1533 <template name="temp_tab" keep="true" nb="" id="" posparent="" posref="" x="" >
1534 <ctrl style="tab_button_new" id="#id" posparent="#posparent" posref="#posref"
1535 group="content:group#nb" text="TabNo#nb" />
1538 <vector template="temp_tab" _size="16" _firstpos="TR TL" _nextpos="TR TL" _xfirst="4" x="1" id="tab_array0_$i" nb="$i" posparent="tabref" />
1540 This will create 16 instances of ctrls (tab_array0_0, tab_array0_1, tab_array0_2....)
1541 The first one will be placed on right of "tabref", but with a x of 4 (_firstpos="TR TL" _xfirst="4")
1542 The next ones will be placed on right of each other, but sticked with a x of 1 (_nextpos="TR TL" x="1" )
1544 NB: if '_xfirst' is not defined, then 'x' will be taken for the first position also
1545 NB: if '_yfirst' is not defined, then 'y' will be taken for the first position also
1546 NB: Both _firstpos/_nextpos must be defined in order for the "stick system" to work
1547 also you must declare id="", posparent="" and posref="" in the template definition.
1550 // ***************************************************************************
1552 // ***************************************************************************
1555 crée une variable et associe une valeur
1559 entry="" // Obligatoire. lien vers la database.
1560 type="" // Obligatoire. sint32, sint64, float, double, bool, rgba, hotspot.
1561 // float et double on le meme effet
1562 value="" // valeur à mettre
1563 size="" // Si définit, alors <variable> sert à définir un tableau.
1567 <variable entry="UI:MODE" type="sint32" value="0"/>
1569 Dans le cas de définition d'un tableau, le premier "$i" rencontré est remplacé par l'index de 0 à size-1.
1570 <variable entry="UI:LIST:$i:SHEET" type="sint32" value="0" size="4" />
1572 // ***************************************************************************
1574 // ***************************************************************************
1576 lié une expression à une valeur d'une vue (target). L'expression doit dependre d'entrée de la database. A chaque fois qu'une
1577 entrée de la database est updatée, l'expression est recalculée, et le target est updatée.
1582 expr="" // obligatoire : expression a évaluer. L'expression doit dépendre au moins d'une entrée de la database
1583 target="" // valeurs auxquelles doit etre affectée le résultat de l expression, relatif au groupe qui contient le link, ou considéré comme une adresse absolue si non trouvé
1584 action="" // facultatif : un action handler a appeller en cas d update
1585 params="" // facultatif : paramètre pour l action handler
1586 cond="" // facultatif : condition à l'execution de l'action handler
1591 <view type="bitmap" id="my_view" >
1592 <link expr="ne(@my_db_entry, 0)" target="my_view:active,my_other_view:active"/> // si l entrée de database 'my_db_view' ne vaut pas 0, alors my_view:active est mis à true
1594 CREATION DYNAMIQUE DE LIEN:
1595 Elle est utile si on veut que les update ne soient pris en compte qu'à un moment précis (par exemple dans une boite modale)
1596 C'est sutout bien dans le cas de test couteux ou si des textes non visibles sont updatés pour rien.
1599 handler="add_link" params="id=identifier_unique|expr=expression_a_evaluer|target=dest_de_lexpression"
1602 handler="remove_link" params="id=identifier_unique|expr=expression_a_evaluer|target=dest_de_lexpression"
1605 par exemple, en reprenant l exemple precedent:
1607 handler="add_link" params="id=mon_lien|expr=ne(@my_db_entry, 0)|target=my_view:active"
1608 handler="remove_link" params="id=mon_lien"
1610 // ***************************************************************************
1611 // <anim> <track> <key>
1612 // ***************************************************************************
1615 id="specie_in" // nom du timer
1616 duration="3.0" // temps en seconde pour faire varier l entree dans la database
1617 loop="true" // est ce que l anim doit boucler ?
1618 reverse="false" // est ce que l anim doit etre jouee a l envers
1619 on_finish="ahwhenfini" // action handler a lancer quand le timer arrive a la fin
1620 on_finish_params="ahp" // les parametres de l action handler
1624 type="linear" // linear, bezier, tcb
1625 target="specie:race:y" // all the targets affected may be more than one
1626 dynamic="true" // (def:false) si true evalue tous les parametres des cles lors du lancement de l anim
1629 Si la track est de type linear :
1631 time="1.0" // Une valeur de temps comprise entre 0 et la duration de l anim
1632 value="15" // la valeur que prennent les targets au temps : time
1635 Si la track est de type bezier :
1637 time="1.0" // Une valeur de temps comprise entre 0 et la duration de l anim
1638 value="15" // la valeur que prennent les targets au temps : time
1639 intan="0.0" // float facultatif def:0 ???? aucune idee de ce a quoi ca peut servir
1640 outtan="0.0" // float facultatif def:0 ???? aucune idee de ce a quoi ca peut servir
1641 step="true" // bool facultatif def:false ???? aucune idee de ce a quoi ca peut servir
1644 Si la track est de type TCB :
1646 time="1.0" // Une valeur de temps comprise entre 0 et la duration de l anim
1647 value="15" // la valeur que prennent les targets au temps : time
1648 tension="1.0" // float facultatif def:0
1649 continuity="0.0" // float facultatif def:0
1650 bias="1.0" // float facultatif def:0
1651 easeto="0.1" // float facultatif def:0
1652 easefrom="0.3" // float facultatif def:0
1658 un exemple typique est :
1660 <group id="specie" sizeref="wh" on_active="anim_start" on_active_params="anim=t1">
1661 <group id="race" posref="BL BL" x="16" y="64">
1665 <anim id ="t1" duration="3.0" >
1666 <track type="linear" target="specie:race:y">
1667 <key time="0.0" value="-16"/>
1668 <key time="3.0" value="64"/>
1672 quand on va activer le groupe specie cela va lancer l'animation t1. la valeur
1673 specie:race:y va etre modifiee -> cela va faire monter le groupe specie:race
1676 // ***************************************************************************
1677 // <scene3d> <character3d> <ig> <camera> <light>
1678 // ***************************************************************************
1680 // ---------------------------------------------------------------------------
1682 reference="id_scene3d" // Donne la reference sur une autre scene 3d (dans ce cas la c est juste une vue sur une autre scene)
1684 sun_ambient="50 50 50"
1685 sun_diffuse="255 255 255"
1686 sun_specular="255 255 255"
1687 sun_direction="-1.0 1.0 -1.0"
1688 curcam="id_camera" // Camera courante
1689 curcs="id_camera" // Cluster system courant (un ig avec des clusters)
1691 user_interaction="true" // Interaction camera (qui doit etre callée en y (ie camx=tgtx & camz=tgtz)
1692 rotz_factor="0.005" // Facteur de vitesse lors d une rotation autour
1693 rotz_limit_min="-45" // Limites d angles
1695 roty_factor="0.005" // Facteur de vitesse lors d une rotation haut-bas
1696 roty_limit_min="-20"
1698 dist_factor="0.005" // Facteur de vitesse lors d un deplacement de distance
1699 dist_limit_min="0.1" // Limites de distances en metres
1706 MODIFIABLE: curcam (string)
1710 // ---------------------------------------------------------------------------
1712 dblink="UI:TEMP:CHAR3D"
1717 MODIFIABLE: headx, heady, headz (float la position de la tete apres au moins une frame d animation)
1718 posx, posy, posz (float la position)
1719 rotx, roty, rotz (float angle en degres)
1722 // ---------------------------------------------------------------------------
1729 MODIFIABLE: posx, posy, posz (float la position)
1730 posx, posy, posz (float l orientation en degree)
1733 // ---------------------------------------------------------------------------
1735 name="shape_name.shape"
1740 MODIFIABLE: posx, posy, posz (float la position)
1741 posx, posy, posz (float l orientation en degree)
1744 // ---------------------------------------------------------------------------
1747 target="2.0 3.0 4.0"
1752 MODIFIABLE: posx, posy, posz (float la position)
1753 tgtx, tgty, tgtz (float la position de la target)
1754 fov (float angle en degree)
1755 roll (float angle en degree)
1757 // ---------------------------------------------------------------------------
1762 color="127 255 64 255"
1765 MODIFIABLE: posx, posy, posz (float la position)
1767 colr, colg, colb (int)
1769 // ---------------------------------------------------------------------------
1771 name="sp_cast_loop.ps"
1776 MODIFIABLE: posx, posy, posz (float la position)
1777 rotx, roty, rotz (float la rotation)
1778 started (bool le fx est il en train d etre joue ?)
1781 un exemple typique :
1783 <scene3d id="char3d" x="576" y="-32" w="576" h="488" posref="TR TR" curcam="cam"
1784 ambient="0 0 0" sun_ambient="50 50 50" sun_diffuse="255 255 255" sun_specular="255 255 255" sun_direction="-1.0 1.0 -1.0" >
1786 <character3d id="char" dblink="UI:TEMP:CHAR3D" pos="0.07 26.52 0.85" rot="0.0 0.0 -90.0" />
1788 <camera id="cam" fov="45" pos="0.01 22.29 2.5" target="0.01 37.9 1.53" roll="0" />
1790 <light id="l1" pos="-1.0 24.29 2.0" color="0 255 0" near="1.0" far="5.0" />
1792 <ig id="env" name="matis.ig" pos="0 0 0" />
1794 <fx id="fx1" pos="0.0 0.0 0.0" name="Sp_Cast_Loop.ps" />
1798 // ***************************************************************************
1799 // <action_category >
1803 // ***************************************************************************
1805 // Definition d'une category d'action
1807 hardtext="uiUI" // Nom de la category localisé (defaut : "")
1810 // ---------------------------------------------------------------------------
1812 // Une definition d'action de base
1814 repeat="0" // 1 : l'action est répétée avec la répétition clavier, 0 : elle n'est pas répétée. (defaut : 0)
1815 name="screenshot" // Nom de l'action handler utilisé par l'action (defaut : "")
1816 hardtext="uiTakeScreenshot" // Nom localisé de l'action (defaut : "")
1819 // ---------------------------------------------------------------------------
1821 // Un paramètre d'action de base
1823 type="action_param_constant" // Type de paramètre :
1824 // action_param_hidden : le paramètre est caché à l'utillisateur
1825 // action_param_constant : le paramètre est une valeur prédéterminée (voir <value>)
1826 // action_param_user : le paramètre est entré par l'utilisateur. Tous les characters sont permis.
1827 // action_param_user_name : le paramètre est entré par l'utilisateur. Uniquement les characters permis dans les noms sont utilisés.
1828 // (defaut : action_param_constant)
1829 name="filename" // Nom du paramètre (defaut : "")
1830 hardtext="uiFilename" // Nom localisé du paramètre (defaut : "")
1831 value="" // La valeur par defaut du paramètre (defaut : "")
1834 // ---------------------------------------------------------------------------
1836 // Une valeur prédéfinie de paramètre d'action de base
1838 value="toto" // La valeur (defaut : "")
1839 hardtext="uiToto" // Le nom localisé de la valeur (defaut : "")
1844 <action_category hardtext="uiDivers">
1846 // Action pour envoyer un message à un joueur
1847 <action repeat="0" name="tell" hardText="uiTell">
1848 <parameter type="action_param_user_name" name="user" hardText="uiUsername" visible="1"/>
1849 <parameter type="action_param_user" name="message" hardText="uiMessage" visible="1"/>
1852 // Action pour passer en mode labo
1853 <action name="set_mode" hardText="uiModelabo">
1854 <parameter value="2" visible="0"/>
1857 // Action pour ouvrir un inventaire de sac
1858 <action repeat="0" name="open_window" hardText="uiOpenWindow">
1859 <parameter type="action_param_constant" name="" hardText="uiWindow" visible="1">
1860 <value value="UI:BAG1" hardtext="uiBag1"/>
1861 <value value="UI:BAG2" hardtext="uiBag2"/>
1862 <value value="UI:BAG3" hardtext="uiBag3"/>
1868 // ***************************************************************************
1870 // ***************************************************************************
1872 <key name="Key1" ctrl="0" shift="0" menu="0" action="run_shortcut" params="1"/>
1874 Bind a key combo to an action handler.
1876 // ***************************************************************************
1877 // ***************************************************************************
1879 // ***************************************************************************
1880 // ***************************************************************************
1883 <action="enter_modal" params="group=ui:interface:yoyo_modal1">
1884 affiche la fenetre modal ui:interface:yoyo_modal1 ici.
1886 <action="leave_modal">
1887 cache la fenetre modal courante
1889 <action="proc" params="nom_procedure|arg0|arg1|...">
1890 lance une procédure. Les arguments sont séparés du nom de la procédure par des "|".
1892 <action="set" params="dblink=liendatabase|value=expr">
1893 set un sint32, resultat de l'evaluation de expr, dans la database.
1895 <action="set" params="target_property=target0,target1,...,targetn|value=expr">
1896 affecte le resultat de l'evaluation de expr a chacun des target (valeur exportée des elements de l'interface telle que 'active')
1898 <action="copy" params="dbdst=liendatabase|dbsrc=liendatabase">
1899 copie une valeur de la database dans une autre
1901 <oncandrop="isitem" params="">
1902 test si dropable est un item
1904 <oncandrop="isitem_slot" params="type=itemslot">
1905 test si dropable est un item d'un certain type (HEAD, ARMS...)
1907 <onfilter="filter_item" params_filter="type=itemslot">
1908 test si le ctrlSheet est un item d'un certain type (HEAD, ARMS...)
1909 à mettre sur les props de list_sheet
1911 <action="set_keyboard_focus" params="target=ui:interface_my_edit_box|select_all=true">
1912 Met le focus sur l'edit box en target. Selectionne tout le texte si select_all vaut true
1914 <on_active="timer_start" on_active_params="timer=specie_in">
1915 Lance un timer (voir <timer>)
1918 <action="set_server_id" params="value=@%user_name_id|target=player_name:uc_hardtext">
1919 Affecte une value a une target. La value represente un identifiant de mot reseau (nom des jouers par exemple)
1921 <action="set_server_string" params="value=@%user_name_id|target=player_name:uc_hardtext">
1922 Affecte une value a une target. La value represente un identifiant de chaine reseau (phrase composee de plusieurs mots)
1924 // ***************************************************************************
1925 // ***************************************************************************
1926 // COMMON EXPRESSIONS
1927 // ***************************************************************************
1928 // ***************************************************************************
1930 // ***************************************************************************
1933 return (arg1 + arg2)
1935 // ***************************************************************************
1938 return (arg1 - arg2)
1940 // ***************************************************************************
1943 return (arg1 * arg2)
1945 // ***************************************************************************
1948 return (arg1 / arg2)
1950 // ***************************************************************************
1953 return (arg1 % arg2)
1955 // ***************************************************************************
1958 return abs(arg1) (valeur absolue de arg1)
1960 // ***************************************************************************
1965 // ***************************************************************************
1968 return (arg1 != arg2)
1970 // ***************************************************************************
1973 return (arg1 == arg2)
1975 // ***************************************************************************
1978 return (arg1 < arg2)
1980 // ***************************************************************************
1983 return (arg1 <= arg2)
1985 // ***************************************************************************
1988 return (arg1 > arg2)
1990 // ***************************************************************************
1993 return (arg1 >= arg2)
1995 // ***************************************************************************
1998 return (arg1 || arg2 || ... || argn)
2000 // ***************************************************************************
2003 return (arg1 && arg2 && ... && argn)
2005 // ***************************************************************************
2010 // ***************************************************************************
2013 converti tous les arguments en string et return arg1_str + arg2_str + ... + argn_str
2015 // ***************************************************************************
2018 converti l'argument en entier
2020 // ***************************************************************************
2022 arguments : 2 ou 3 (1er argument de type bool)
2023 retourne le 2eme argument si le 1er est vrai
2024 sinon retourne le 3eme argument (si il existe)
2026 // ***************************************************************************
2028 arguments : au moins 2 (1er argument de type int)
2029 retourne le n ieme argument ou n est la valeur du premier argument +1
2030 si arg1 vaut 0 on retourne arg2
2031 si arg1 vaut 1 on retourne arg3
2034 // ***************************************************************************
2036 arguments : 3 double (1er == interpolant (0 - 1.0)) (a 0 arg2 max, a 1 arg3 max)
2037 retourne arg2 + arg1 * (arg3 - arg2)
2039 // ***************************************************************************
2041 arguments : 2 entiers (1er == valeur, 2nd == numero du bit desire)
2042 retourne le arg2_ieme bits de la valeur arg1
2044 // ***************************************************************************
2046 arguments : 2 double
2047 retourne une valeur comprise entre arg1 et arg2
2049 // ***************************************************************************
2051 arguments : 1 (string) (exemple : dbcount('SERVER:MODIFIERS:BONUS:$:SHEET')
2052 compte le nombre d occurences dans la database.
2053 si l entree est un noeud alors detecte qu il ne soit pas egal a zero
2054 il faut obligatoirement un $ (qui sera remplace par 0,1,2,...)
2056 // ***************************************************************************
2058 arguments : 1 (string) (exemple : getprop('ui:interface:define_day_color:pick:b'))
2059 retourne la valeur MODIFIABLE d un element d interface
2061 // ***************************************************************************
2063 arguments : 1 (integer)
2064 retourne la meme valeur en rgba
2066 // ***************************************************************************
2068 arguments : 1 (rgba)
2069 retourne la meme valeur du rouge
2071 // ***************************************************************************
2073 arguments : 1 (rgba)
2074 retourne la meme valeur du vert
2076 // ***************************************************************************
2078 arguments : 1 (rgba)
2079 retourne la meme valeur du bleu
2081 // ***************************************************************************
2083 arguments : 1 (rgba)
2084 retourne la meme valeur de l alpha
2086 // ***************************************************************************
2088 arguments : 3 ou 4 (int)
2089 retourne un rgb ou rgba
2091 // ***************************************************************************
2093 arguments : n>0 (int ou double)
2094 retourne la valeur minimum de tous les arguments
2096 // ***************************************************************************
2098 arguments : n>0 (int ou double)
2099 retourne la valeur maximum de tous les arguments
2101 // ***************************************************************************
2105 sert uniquement a creer des dependances sur des elements de database pour appeler des actions
2107 // ***************************************************************************
2110 retourne le premier argument
2111 sert un peu comme depends mais en plus permet un setup direct d une target
2113 // ***************************************************************************
2116 retourne AND bit à bit de tous les arguments. 0 si nargs==0.
2118 // ***************************************************************************
2121 retourne OR bit à bit de tous les arguments. 0 si nargs==0.
2123 // ***************************************************************************
2126 retourne XOR bit à bit des 2 arguments.
2128 // ***************************************************************************
2131 retourne NOT bit à bit de l'argument.
2135 // ***************************************************************************
2136 // ***************************************************************************
2138 // ***************************************************************************
2139 // ***************************************************************************
2141 // ***************************************************************************
2146 // ***************************************************************************
2149 convertit l'argument de type float (angle radian) en text
2151 // ***************************************************************************
2153 arguments : 1 entier
2154 convertit l'argument qui represente le numero du type de pacte en chaine de character
2156 // ***************************************************************************
2158 arguments : 1 entier
2159 convertit un jour ryzom (entier) en date sous le fromat 06 / 02 /03
2161 // ***************************************************************************
2163 arguments : 1 entier
2164 retourne en ucstring le texte de difficulte internationalise
2166 // ***************************************************************************
2168 arguments : 1 entier
2169 retourne un booleen qui dit si le arg1_ieme (0-5) slot de character summary est vide ou non
2171 // ***************************************************************************
2172 getClientActionTypeText
2176 // ***************************************************************************
2177 getClientActionTypeColor
2181 // ***************************************************************************
2184 true si le sheetId définit un item à 2 mains
2186 // ***************************************************************************
2189 convert a serverTick in smoothServerTick
2191 // ***************************************************************************
2193 arguments : 2 strings (exemple : getVSIndex('fy_cheveux_shave01.sitem','HEAD'))
2194 retourne (int) l index de visual slot en fonction d un nom d item et d un type de slot
2196 // ***************************************************************************
2198 arguments : 1 string
2199 retourne un entier qui est le numero de la carriere (dans l enum)
2201 // ***************************************************************************
2204 donne le facteur de blend jour/nuit (un double de 0.0 a 1.0)
2206 // ***************************************************************************
2208 arguments : 1 string (exemple : strToIntFlag('Combat'))
2209 retourne (int) le numero du flag correspondant a la string
2211 // ***************************************************************************
2213 arguments : 1 string (exemple : getSheathSlot('ammo1'))
2214 retourne (int) le numero du fourreau en fonction de son nom
2216 // ***************************************************************************
2218 arguments : 1 string (exemple : getInventorySlot('pack_animal1'))
2219 retourne (int) le numero du slot d inventaire en fonction de son nom
2221 // ***************************************************************************
2223 arguments : 1 string (exemple : getEquipmentSlot('FingerL'))
2224 retourne (int) le numero du slot d equipement en fonction de son nom
2226 // ***************************************************************************
2231 // ***************************************************************************
2232 // ***************************************************************************
2234 // ***************************************************************************
2235 // ***************************************************************************
2237 // ***************************************************************************
2238 getSelectedItemPrice
2240 Get the price of the current selected item (should come from bot inventory)
2242 // ***************************************************************************
2245 Get ptr object on the current dragged sheet
2247 // ***************************************************************************
2250 Get ptr object on the current selected sheet
2252 // ***************************************************************************
2255 Get ptr object on the last sheet that trigerred menu.
2257 // ***************************************************************************
2259 From a pointer on a sheet, get its sheetID
2261 // ***************************************************************************
2262 getSheetSelectionGroup
2263 From a pointer on a sheet, get its selection group name
2265 // ***************************************************************************
2267 From a pointer on a sheet, or a sheet ID, get its name
2269 // ***************************************************************************
2271 From a pointer on a sheet, get its index in the parent sheet list
2273 // ***************************************************************************
2275 From a pointer on a sheet, retrieve its quantity
2277 // ***************************************************************************
2279 From a pointer on a sheet, retrieve its quality
2281 // ***************************************************************************
2283 From a pointer on a sheet, get its index in the parent sheet list
2285 // ***************************************************************************
2287 From a pointer on a sheet or a sheet ID, test if an item is a teleport item
2289 // ***************************************************************************
2291 From a pointer on a sheet or a sheet ID, test if an item is a plain item (not a teleport, not a brick, not a pact)
2293 // ***************************************************************************
2295 From a sheet ID, test if an item is a brick
2297 // ***************************************************************************
2299 From a sheet ID, test if an item is a pact
2301 // ***************************************************************************
2303 From a pointer on a sheet or a sheet ID, test if an item is a ran,ged weapon
2305 // ***************************************************************************
2307 From a sheet ID, test if there's room for it in the inventory
2309 // ***************************************************************************
2310 getSelectionGroupNameFromId
2311 Get the name of a selection group from its id
2313 // ***************************************************************************
2314 getSelectionGroupIdFromName
2315 Get the id of a selection group from its name
2317 // ***************************************************************************
2318 getItemsWeight(basePath, firstItem, numItem)
2319 Get the sum of all item's weight at the given db path
2321 // ***************************************************************************
2322 getItemBranchsWeight(baseBranch, firstBranch, numBranch)
2323 Get the sum of all items located in several branchs
2325 // ***************************************************************************
2327 Returns the weight of the seeds owned by the player
2329 // ***************************************************************************
2331 Returns the weight of all armours pieces worn by the player
2333 // ***************************************************************************
2334 getInventoryWeight()
2335 Returns the weight of the whole inventory, not including beasts'inventory of course
2337 // ***************************************************************************
2339 Returns the weight of the sheaths
2341 // ***************************************************************************
2342 getBranchSheetCategory()
2343 return the types of items that are contained in a branch (with the enum CDBCtrlSheet::TSheetCategory
2345 // ***************************************************************************
2347 param 0 = pointer on a sheet, param 1 = dbAdress.
2348 This copy characteristics of a sheet (quantity, quality, sheet id) at the given database adress