Property Element

Revision as of 21:24, 22 May 2009 by imported>JRoush (→‎General)


Property Elements are a subgroup of the elements in the Oblivion XML schema, always found as children of Menu Elements. Loosely put, property elements define the properties of their parent element - position on the screen, color, texture, etc. In this sense they are similar to traditional xml traits.

There are two basic data types for properties - numeric and string. A number of Oblivion-specific XML entities are defined for commonly used constants of both types. Particularly useful are the numeric entities &true; and &false;, used to simulate boolean properties.

Property elements may contain literal values, or a set of Operator Elements as children (but not both). When the menu is rendered, the Oblivion parser evaluates each property element to obtain the value of the property (see the operator element page for a description on how they are evaluated). If a menu element contains more than one property element of the same type, the last one defined will take precedence. If it contains no property elements for an applicable property, the default value is used (usually zero or the empty string).

General

Properties which any menu element of any type might define.

  • ID (Numeric) Specifies which part of the internal menu "class" the element corresponds to, for the purposes of updating and accepting player input. For example, the game treats whatever element has an ID of 3 in the Recharge menu as the exit button, regardless of the type, name, or any other property of the element - if it can be clicked on, then doing so will close the menu. Likewise, the element with ID 2 in the Enchantment Settings menu is treated as the effect icon and will have its filename property updated by the game (even if it shouldn't have one). Valid ID values depend on the menu class, but generally range 1-20. Giving an element an ID not recognized for that menu will have no effect, while changing an existing ID will prevent the element from updating or accepting input.
  • User# (type flexible) Element types beginning in "user" are not in general part of the Oblivion XML schema. They may, however, be recognized by specific menu classes and set to specific values. For example, in most contexts an element of type User4 would be parsed and then ignored. The internal class of the Spellmaking menu, though, will look for a User4 property element that is a child of the root Menu Element, and update its value to the current magicka cost.

Sizeable

Properties defining the size and screen position of a menu element, and possibly its children.

  • X,Y
  • Height, Width
  • Locus

Rendered

Properties for any menu element with a visible effect, i.e. Image and Text elements. Note, however, that setting the Visible property to false on any element will hide all of it's children.

  • Visible
  • Alpha
  • Depth
  • Clips

Mouse Targetable

Properties for any menu elements that can be the focus of mouse events, i.e. the Image and Rect elements.

  • Target
  • Clicksound
  • Mouseover

Textured

Properties specific to the Image Element

  • Filename
  • Zoom
  • CropX,CropY

Text

Properties specific to the Text Element

  • Red, Green Blue
  • Font
  • Justify
  • String
  • Wrapwidth

Menu

Properties specific to the Menu Element

  • Class (Numeric) Specifies which internal menu "class" to use for handling input & output to the menu. Values match those returned by MenuMode, but are generally specified using a set of XML entities closely based on the menu name (e.g. "&RechargeMenu;" for the Recharge menu, with numerical value 1049). Values for which no internal menu class exists (like zero) will result in a "dead" menu - the menu will open, but will not be updated or accept input.
  • Stackingtype (Numeric) Specifies whether or not the menu blocks the use of other menus and or the gameplay controls while open. Most menus do; only the HUD and the magic effects popup do not by default. Possible values are "&no_click_past;" (numerical value 6006) and "&does_not_stack;" (6008), although any value other than 6006 appears to cause non-blocking behavior.
  • Menufade (Numeric) Specifies the duration (in seconds) of the "fade in" and "fade out" effect when the menu is opened and closed, respectively. While fading, the menu is open but does not update or accept input.