// *************************************************************************** // *************************************************************************** // INTERFACE COMMANDS // *************************************************************************** // *************************************************************************** Fichier de definition des commandes et paramtres de l'interface Note: dans la syntaxe et la description des parmptres, la valeur indique est la valeur par dffaut Note: le X va vers la droite, le Y vers le haut. Les valeurs sont en pixels Note: DERIVANT DE veut dire qu'on peut mettre les meme parametres que celui de qui on derive les modifiables sont aussi herites Note: MODIFIABLE veut dire que l'on peut modifier un paramtres dans le script (avec un link par exemple) Note: OBLIGATOIRE veut dire que l'option doit tre presente sinon il y a crash ou non fonctionnement Note: Identifiant de localisation local de type string (fait reference a un id de en.uxt par exemple) Identifiant de localisation reseau de type integer // *************************************************************************** // *************************************************************************** // BASICS // *************************************************************************** // *************************************************************************** chaque vue, control, ou group DERIVE DE interface_element et peut avoir les parametres suivant: MODIFIABLE: active (bool) x, y, w, h (int) // *************************************************************************** // *************************************************************************** // VIEWS // *************************************************************************** // *************************************************************************** Une vue a un type qui est dfinit par le parametre type="". MODIFIABLE: alpha (int) // *************************************************************************** // // *************************************************************************** BUT: affiche une bitmap SYNTAXE: MODIFIABLE: color (string) color_as_int (int) color_rgba (rgba) texture (string) alpha (int) // *************************************************************************** // // *************************************************************************** Vue DERIVANT DE BUT: affiche une bitmap dans des textures non condenses (plusieurs textures dans une seule) SYNTAXE: texture sert pour le nom de la texture toute seule // *************************************************************************** // // *************************************************************************** BUT: affiche un text SYNTAXE: MODIFIABLE: hardtext (string) uc_hardtext (ucstring) color (string ('#r #g #b #a')) color_rgba (rgba) alpha (int) NOTE: IL NE FAUT PAS mettre de sizeref sur une vue texte. NOTE: Les vue textes peuvent prendre la forme de "TextFormatTagged". MAIS SEULES les vues textes multilignes interprètent correctement les tags. Les Tags possibles sont: @{F3DF} Tag De couleur (en hexadecimal, défintion avec 0 à F (0 à 15 maxi only donc) pour chaque composante RGBA) @{T10} Tag de Tabulation. Le chiffre indique l'espacement minimum (en nombre de caractère '_') NOTE: Il n'est pas posssible de préciser un TextFormatTaged, autrement que par code C++, ou via la fonction LUA: setTextFormatTaged() // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE affiche un text en fonction d'un identifiant reseau (c'est une chaine de character equivalent a set_server_string (ah)) SYNTAXE: MODIFIABLE: textid (int) textid_dblink (string) // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE Affiche une entre de la database (un nombre entier) sous forme de text SYNTAXE: // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE Affiche un texte. Si le texte contient les caracteres speciaux suivant, il y a un traitement particulier $p -> remplace par le nom du joueur $P -> remplace par le nom du joueur en lettre capitale $b -> remplace par le nom du NPC auquel le joueur est en train de parler $s -> remplace par le nom du NPC auquel le joueur est en train de parler (sans le titre) ui... -> remplace par la traduction i18n (puis effectue les remplacements precedent) SYNTAXE: // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE Un peu dans le meme esprit que la vue text_formated. Elle possede les memes traitements particuliers que text_formated auxquels il faut y rajouter : $t -> remplace par la valeur du text id SYNTAXE: // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE Affiche un nombre de la database sous la forme "8/10" (avec donc une valeur max de la database). Si le nombre est 0, cela affiche la string emptytext. Par defaut emptytext="", et dans ce cas, "0/80" est affich (80 est la vraie valeur max en fait) SYNTAXE: NB : emptytext contient un identifiant de localization local // *************************************************************************** // // *************************************************************************** BUT: Vue speciale qui affiche un nombre avec des digits speciaux (bitmaps). SYNTAXE: La taille totale est automatiquement calcule en fonction du digit 0 et du nombre de digit. bien sur, x,y,posref etc... marche toujours // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE affiche une valeur sous forme de bar. Pour l instant 4 versions : (normal, mini, ultra_mini et mini_thick) les bitmaps utilisees sont hardcodees en c++ SYNTAXE: MODIFIABLE: value (int) range (int) reference (int) value_dblink (string) range_dblink (string) reference_dblink (string) // *************************************************************************** // // *************************************************************************** BUT: Vue DERIVANT DE un peu dans le meme esprit que "bar" mais affiche directement 3 barres SYNTAXE: MODIFIABLE: value1 (int) value2 (int) value3 (int) range1 (int) range2 (int) range3 (int) // *************************************************************************** // *************************************************************************** // CONTROLS // *************************************************************************** // *************************************************************************** DERIVE DE Un control a un type qui est définit par le paramètre type="". MODIFIABLE: alpha (int) // *************************************************************************** // // *************************************************************************** BUT: Control qui dérive simplement de ctrl_base, et qui ne gère aucun évenement et n'affiche rien. Son seul but est d'avoir une zone pour afficher un tooltip quand on passe dessus. SYNTAXE: // *************************************************************************** // // *************************************************************************** BUT: boutton, push, radio ou toggle. SYNTAXE: MODIFIABLE: pushed (bool) col_normal (string ('#r #g #b #a')) col_over (string ('#r #g #b #a')) col_pushed (string ('#r #g #b #a')) col_normal_rgba (rgba) col_over_rgba (rgba) col_pushed_rgba (rgba) frozen (bool) params_l (string) texture (string) texture_pushed (string) texture_over (string) // *************************************************************************** // // *************************************************************************** BUT: boutton, push, radio ou toggle. SYNTAXE: MODIFIABLE: pushed (bool) col_normal (string ('#r #g #b #a')) col_over (string ('#r #g #b #a')) col_pushed (string ('#r #g #b #a')) col_normal_rgba (rgba) col_over_rgba (rgba) col_pushed_rgba (rgba) frozen (bool) params_l (string) uc_hardtext (ucstring telle quelle) hardtext (string qui va etre localisee) // *************************************************************************** // // *************************************************************************** BUT: scroll bar. SYNTAXE: // *************************************************************************** // // *************************************************************************** BUT: affiche un boutton spécial d'item, brique etc... SYNTAXE: MODIFIABLE: sheet (string) (correspond a la value le lien vers la DB) color1 (rgba) color2 (rgba) back (int) symbol (int) invert_symbol (bool) // *************************************************************************** // // *************************************************************************** BUT: affiche une image pour choisir que l on puisse choisir une couleur dedans SYNTAXE: MODIFIABLE: r, g, b, a (int) les composantes de la couleur selectionnee color (string ('#r #g #b #a')) // *************************************************************************** // *************************************************************************** // GROUPS // *************************************************************************** // *************************************************************************** // *************************************************************************** // // *************************************************************************** BUT: DERIVE DE Définit un group qui pourra contenir des groups, des controls ou des vues. Aucun affichage n'est fait sinon celui des fils Pour qu'un groupe soit affiché, il faut qu'il apparaisse dans les SYNTAXE: MODIFIABLE: ofsx (int) ofsy (int) // *************************************************************************** // // *************************************************************************** BUT: SYNTAXE: // *************************************************************************** // // *************************************************************************** Herite de group BUT: Afficher un container SYNTAXE: MODIFIABLE: title, title_opened, title_closed (string) uc_title_opened, uc_title_closed, uc_title (ucstring) title_color (string) pop_max_h (int) openable, opened (bool) lockable, locked (bool) Note: si global_color est à true le bouton et le titre sont colorés par la couleur globale // *************************************************************************** // // *************************************************************************** Herite de group BUT: comme un group mais affiche un cadre et un fond (fixé: bitmaps de la modal). SYNTAXE: MODIFIABLE: color (string ('#r #g #b #a')) // *************************************************************************** // // *************************************************************************** Herite du group de type "frame" (affiche donc un cadre) BUT: Affiche une fenetre qui pourra etre ouverte sur une action. Cachée par defaut (active=false) NOTE: un group modal NE DOIT PAS être défini dans les . En fait ils sont automatiquement ajoutés NB: par defaut les modals sont ESCAPABLE SYNTAXE: certains actions handlers prennent un id de window en paramètre (eg: "ui:interface:taskbar"). L'id spécial se nommant "ctrl_launch_modal" désigne en fait le bouton ou le control qui a fait ouvrir la fenetre modal. eg: Un control sheet dans une fenetre modal echange son sheet id avec le ctrl sheet qui a ouvert la modal: Dans le xml, il faut bien faire attention a ce que les modals soient a la racine sinon elles peuvent etre affichées plusieurs fois. Il ne faut pas non plus qu'elles soient ajoutées en tant que node dans un // *************************************************************************** // // *************************************************************************** Herite du groupe de type "modal" BUT: Affiche un menu contextuel Caché par défaut SYNTAXE: // Ligne simple ... MODIFIABLE: pour une action : grayed, checked et tous les modifiables d une vue texte on peut recuperer les usergroup en faisant comme d'habitude menuid:actionid:usergroupid // *************************************************************************** // // *************************************************************************** BUT: affiche une liste variable de ctrl_sheet SYNTAXE: // 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 // Setup tyipque de scrollBar. L'alignement est hardocé pour etre Top. Le y devrait etre egal à "-tmargin" du group list_sheet tx_bottomleft= "w_scroll_l123_b.tga" tx_middle= "w_scroll_l123_m.tga" tx_topright= "w_scroll_l123_t.tga" /> MODIFIABLE: nbelt (int en lecture seul !) le nombre d'element valide si array=false sinon maxelt // *************************************************************************** // // *************************************************************************** BUT: affiche un tableau de familles de métier avec la bonne brick. sont grand pere DOIT etre un container (pour initialiser son nom) SYNTAXE: // Boutons pour changer le niveau de brick voulu // vue qui affiche le niveau selectionné // group de décoration qui affiche un fond derriere le texte (sert pour le scroll des levels à la molette) // *************************************************************************** // // *************************************************************************** BUT: widget qui sert pour augmenter et diminuer un nombre de la database SYNTAXE: // une vue qui permettra d'afficher le nombre // boutton pour incrémenter // boutton pour décrémenter // *************************************************************************** // // *************************************************************************** BUT: widget servant à afficher des lignes de chat ou autres défilant, avec une scrollBar et des boutons pour augmenter la taille de la fenetre SYNTAXE: // *************************************************************************** // // *************************************************************************** BUT: edition de texte SYNTAXE: MODIFIABLE: input_string (string) uc_input_string (ucstring) // *************************************************************************** // // *************************************************************************** BUT: Widget de composition de magie SYNTAXE: // Brick racine // Brick mandatory // Brick optional // bouton de validation // *************************************************************************** // // *************************************************************************** BUT: Widget de composition de magie SYNTAXE: // Brick racine // Brick optional // bouton de validation // Tool // MPs // Select number // *************************************************************************** // // *************************************************************************** BUT: Widget d'affichage des sentence connues. cf list_job pour le lien "list_sentence" SYNTAXE: // 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 // Setup tyipque de scrollBar. L'alignement est hardocé pour etre Top. Le y devrait etre egal à "-tmargin" du group list_sheet tx_bottomleft= "w_scroll_l123_b.tga" tx_middle= "w_scroll_l123_m.tga" tx_topright= "w_scroll_l123_t.tga" // *************************************************************************** // // *************************************************************************** BUT: affiche une combo_box. Un bouton sur un texte qui fait apparaitre un menu de selection de texte quand on clique dessus SYNTAXE: // Text qui affiche le choix courant. // Boutton qui sert pour ouvrir la liste. // ajoute un choix pour la combo_box Note: il faut que "ui:interface:combo_box_select_menu" soit définie comme un avec les paramètres d'aspect que l'on veut. Les champs actions sont remplies quand la combo_box est ouverte EXEMPLE: Ce setup permet de faire une combo box ou le bouton est invisible et recouvre en fait tout le group: si on clique sur le texte, on ouvre alors la liste de choix. // un cadre juste pour faire joli // notre text // Note pas de texture définie sauf l'over: c fait exprès. // *************************************************************************** // // *************************************************************************** hérite de group BUT: affiche un arbre (comme un menu) EXEMPLE: Sur les nodes qui contiennent des fils on peut setuper la valeur de départ à ouvert ou fermé // *************************************************************************** // // *************************************************************************** " ul_begin_space="12" // H space when "
    " li_indent="-10" // W space when "
  • " ul_indent="30" // W space when "
      " 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" checkbox_bitmap_normal="checkbox_normal.tga" // The "off" bitmap use in form checkbox checkbox_bitmap_pushed="checkbox_pushed.tga" // The "on" bitmap use in form checkbox checkbox_bitmap_over="checkbox_over.tga" // The "over" bitmap use in form checkbox background_bitmap_view="bg" // The name of the child bitmap view used for background home="http://www.nevrax.org" // The home url (you can browsse to the home url with the url "home" browse_next_time="false" // If true, the url is browsed when the group is created > // *************************************************************************** // (derived from HTML) // *************************************************************************** // *************************************************************************** // (derived from group) // *************************************************************************** // *************************************************************************** // (derived from group) // *************************************************************************** a html-like table : The table is essentially an array. Each line must have the same number of cells. The width of the table can be arbitrary. Either sizeref="w" or a fixed w can be used. using child_resize_w has undefined results. The height or the table is imposed by its children cells (like with html table) Table is specified using the standard & // option for the table : border : the same the html tables 'border' cellpadding : the same the html tables 'cellpadding' cellspacing : the same the html tables 'cellspacing' bgcolor : background color with format "R G B A" ("255 0 0 255" for example) width : wanted width of table in pixels (same than html "width"). could be a ratio like "100%" usually the table will specify sizeref="w" or w and width="100%" 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 // options for the cells ( tag) Cells can have an id. If none is given a id like cell_1_2 id generated (first number is column, second is row) align : horizontal alignment of cell content. Can be "left", "right" or "center" (same than HTML 'align') valign : vertical alignment of cell content. Can be 'top", "middle" or "bottom" (same than HTML 'valign') left_margin : offset added to the x position of the cell content nowrap : same then htlm table 'nowrap' bgcolor : color of the cell background (with the "R G B A" format) width : same then htlm table 'width' : gives width of column for that cell, or a percentage 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) height : minimum height of the cell ignore_max_width : if "true", the cell content max_used_w is ignored when computing the width of the cell ignore_min_width : if "true", the cell content min_used_w is ignored when computing the width of the cell // *************************************************************************** // *************************************************************************** // MISC: DEFINE, PROCEDURES, TEMPLATES, ANIM, SCENE3D, ... // *************************************************************************** // *************************************************************************** // *************************************************************************** // // *************************************************************************** BUT: Permet de definir une constante. SYNTAXE: EXAMPLE: .... Comme ca "Hello %pipo_title" est remplacé par "Hello yoyo" L'id du define ne peut contenir que les charactères: 'a' à 'z' 'A' à 'Z' '0' à '9' '_' Du coup si vous voulez vraiment afficher un % dans une string (par exemple "25 %"), il faut l'ecrire en double "25 %%" // *************************************************************************** // // *************************************************************************** BUT: Definit un action handler special qui lance des action handlers à la suite SYNTAXE: les paramètres sont optionnels. un action handler peut etre lui meme une autre procedure (attention recursivité :)) La procédure se lance en utilisant l'action handler "proc" avec comme paramètre "nom_procedure" La procédure peut prendre des paramètres en entrée (voir l'action handler proc pour comment faire). Pour chaque action, le champ params="" est parsé. Tout chaine de type @#, ou # est un numéro (à N chiffres) copiera alors le paramètre (simple copie de chaine) au moment de l'appel. Note: de la même facon que les % dans les define, un double @ permet de ne pas considérer l'@ comme un descripteur de paramètre EXAMPLE: .... EXAMPLE paramètres: .... Dans cet exemple, sur un cliok gauche du bouton, set sera appelé avec une valeur de 10!! Notez que l'index des paramètres commence à 0. // *************************************************************************** //