XML:WMDD: Difference between revisions
Jump to navigation
Jump to search
Paradox-01 (talk | contribs) m (ignore this) |
m (→General information: wording) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{XML_File_Header | type=WMDD | {{XML_File_Header | prev=WMCL | type=WMDD | next=WMM | name=WM Dialog Data}} | ||
==General information== | |||
[[Image:Changed_Load_Menu.png|thumb|right]] | |||
* The XML on this page is compatible with OniSplit '''v0.9.61.0'''. | |||
* The "WM" in "WM Dialog Data" stands for "Window Manager", the name of the UI subsystem. | |||
* WMDD files are global (level0_Final.dat). | |||
* A WMDD file contains either a screen with controls (e.g. WMDDdialog_mainmenu) or a dialog with buttons (e.g. WMDDdialog_ChangeRestart). | |||
* Open question: Does WMDDdialog_text_console define the size of "text consoles" as 460x410? | |||
* Oni's out-of-game windows overlay each other. The parent window becomes visible if you remove the background (see image on right). | |||
==XML structure== | |||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
<Oni> | <Oni> | ||
Line 30: | Line 30: | ||
'''''[...]''''' means at least one WMDDControl block. | '''''[...]''''' means at least one WMDDControl block. | ||
==Example== | |||
<WMDDControl> | |||
<Text>Options</Text> | |||
<Class>Label</Class> | |||
<Id>0</Id> | |||
<State>1</State> | |||
<Style>1114112</Style> | |||
<X>5</X> | |||
<Y>10</Y> | |||
<Width>70</Width> | |||
<Height>20</Height> | |||
<nowiki><Font></nowiki> | |||
<Family>TSFFTahoma</Family> | |||
<Style>Bold</Style> | |||
<Color>255 127 0</Color> | |||
<Size>10</Size> | |||
<nowiki></Font></nowiki> | |||
</WMDDControl> | |||
* If you have a TXMB in your WMDD, don't put additional <WMDDControl> blocks under the block with the TXMB or your new blocks will be hidden. | |||
* The block is always the same if <Text> contains "outline": | |||
<Text>outline</Text> | |||
<Class>Title</Class> | |||
<Id>0</Id> | |||
<State>5</State> | |||
<Style>65536</Style> | |||
===Header=== | |||
=== | |||
{|class="wikitable" width="100%" | {|class="wikitable" width="100%" | ||
!width=80px| XML tag | !width=80px| XML tag | ||
!width=60px| | !width=60px| Type | ||
! | ! Flags and descriptions | ||
|- | |- | ||
| <nowiki><Caption></nowiki> | | <nowiki><Caption></nowiki> | ||
Line 75: | Line 69: | ||
|<Id> | |<Id> | ||
| int16 | | int16 | ||
| page | | page ID, looked up by the game application | ||
|- | |- | ||
|valign=top| <State> | |valign=top| <State> | ||
Line 107: | Line 101: | ||
| <X> | | <X> | ||
| int16 | | int16 | ||
| align (in header | | align (always 0 in the header) | ||
|- | |- | ||
| <Y> | | <Y> | ||
| int16 | | int16 | ||
| align (in header | | align (always 0 in the header) | ||
|- | |- | ||
| <Width> | | <Width> | ||
| int16 | | int16 | ||
| X dimension (in header | | X dimension (always 640 in the header?) | ||
|- | |- | ||
| <Height> | | <Height> | ||
| int16 | | int16 | ||
| Y dimension (in header | | Y dimension (always 480 in the header?) | ||
|} | |} | ||
===<WMDDControl>=== | ===<WMDDControl>=== | ||
{|class="wikitable" width="100%" | {|class="wikitable" width="100%" | ||
!width=80px| XML tag | !width=80px| XML tag | ||
!width=60px| | !width=60px| Type | ||
! | ! Flags and descriptions | ||
|- | |- | ||
|valign=top|<Text> | |valign=top|<Text> | ||
|valign=top| char[256] | |valign=top| char[256] | ||
| | | | ||
* | * Can contain text | ||
* "outline" was always used by | * "outline" was always used by Bungie West for <Class>Title</Class> (it's invisible) | ||
* "WMM_''filename''" | * "WMM_''filename''" | ||
|- | |- | ||
Line 140: | Line 133: | ||
| | | | ||
: Desktop (01 00) | : Desktop (01 00) | ||
: Title (03 00) | : Title (03 00) ("groupbox" or "box" that groups elements together visually) | ||
: Button (04 00) (button text like "OK" or "Close") | : Button (04 00) (button text like "OK" or "Close") | ||
: Checkbox (05 00) | : Checkbox (05 00) | ||
Line 148: | Line 141: | ||
: MenuBar (09 00) | : MenuBar (09 00) | ||
: Menu (0A 00) | : Menu (0A 00) | ||
: Image (0B 00) (TXMB | : Image (0B 00) (a TXMB, TXMP or PSpc) | ||
: Dropdown (0C 00) (WMM_ drop-down menu) | : Dropdown (0C 00) (WMM_ drop-down menu) | ||
: ProgressBar (0D 00) | : ProgressBar (0D 00) | ||
Line 154: | Line 147: | ||
: 16 (10 00) (scrollbar; not used in dialogs) | : 16 (10 00) (scrollbar; not used in dialogs) | ||
: Slider (11 00) | : Slider (11 00) | ||
: Label (14 00) ( | : Label (14 00) (a <Width> value smaller than the text forces a linebreak) ("text") | ||
|- | |- | ||
| <Id> | | <Id> | ||
| int16 | | int16 | ||
| page | | page ID, looked up by game application | ||
|- | |- | ||
|valign=top| <State> | |valign=top| <State> | ||
Line 165: | Line 158: | ||
:1 (visible) | :1 (visible) | ||
:2 (disabled) | :2 (disabled) | ||
:4 (unknown, | :4 (unknown, probably "change texture on click" (used by checkbox)) | ||
|- | |- | ||
|valign=top| <Style> | |valign=top| <Style> | ||
Line 179: | Line 172: | ||
: Center (00 00 01 00) | : Center (00 00 01 00) | ||
====Control specific styles==== | |||
Groupbox/box: | |||
: 131072 (00 00 02 00) (draw text background) | : 131072 (00 00 02 00) (draw text background) | ||
: 262144 (00 00 04 00) (draw text) | : 262144 (00 00 04 00) (draw text) | ||
Button: | |||
: 65536 (00 00 01 00) (draw button) | : 65536 (00 00 01 00) (draw button) | ||
: 131072 (00 00 02 00) (draw button text) | : 131072 (00 00 02 00) (draw button text) | ||
: 524288 (00 00 08 00) (toggle button like the ones used | : 524288 (00 00 08 00) (toggle button, like the ones used in-game on the Help screen, Diary screen, etc.) | ||
: 1048576 (00 00 10 00) (default button, | : 1048576 (00 00 10 00) (default button, triggered by the Enter key) | ||
Checkbox: | |||
: 65536 (00 00 01 00) (draw label) | : 65536 (00 00 01 00) (draw label) | ||
Radio button: | |||
: 65536 (00 00 01 00) (draw label) | : 65536 (00 00 01 00) (draw label) | ||
Edit field: | |||
: 65536 (00 00 01 00) (number only) | : 65536 (00 00 01 00) (number only) | ||
Listbox: | |||
: 65536 (00 00 01 00) (draw scrollbar) | : 65536 (00 00 01 00) (draw scrollbar) | ||
: 131072 (00 00 02 00) ( | : 131072 (00 00 02 00) (alphabetize items) | ||
: 262144 (00 00 04 00) ( | : 262144 (00 00 04 00) (items are not selectable) | ||
: 524288 (00 00 08 00) (contains text, without this it contains only "custom" data) | : 524288 (00 00 08 00) (contains text, without this it contains only "custom" data) | ||
: 1048576 (00 00 10 00) ( | : 1048576 (00 00 10 00) (owner window will draw the list item) | ||
: 2097152 (00 00 20 00) (draw file/folder icons) | : 2097152 (00 00 20 00) (draw file/folder icons) | ||
Picture: | |||
: 131072 (00 00 02 00) (ignore the picture name; the displayed picture is set at runtime) | : 131072 (00 00 02 00) (ignore the picture name; the displayed picture is set at runtime) | ||
Popup menu: | |||
: 65536 (00 00 01 00) (use menu width; doesn't work) | : 65536 (00 00 01 00) (use menu width; doesn't work) | ||
: 131072 (00 00 02 00) (ignore the menu name; the menu is set at runtime | : 131072 (00 00 02 00) (ignore the menu name; the menu is set at runtime) | ||
Text field: | |||
: 131072 (00 00 02 00) ( | : 131072 (00 00 02 00) (horizontally-centered text) | ||
: 262144 (00 00 04 00) ( | : 262144 (00 00 04 00) (right-aligned text) | ||
: 1048576 (00 00 10 00) ( | : 1048576 (00 00 10 00) (vertically-centered text) | ||
: 8388608 (00 00 80 00) (owner draw (hides text)) | : 8388608 (00 00 80 00) (owner draw (hides text)) | ||
|- | |- | ||
| <X> | | <X> | ||
Line 248: | Line 223: | ||
| <Width> | | <Width> | ||
| int16 | | int16 | ||
| X | | X dimension | ||
|- | |- | ||
| <Height> | | <Height> | ||
| int16 | | int16 | ||
| Y | | Y dimension | ||
|- | |- | ||
| <Family> | | <Family> | ||
Line 267: | Line 242: | ||
| <Color> | | <Color> | ||
| color32 | | color32 | ||
| | | RGB range, e.g. 255 127 0 (for orange) | ||
|- | |- | ||
| <Size> | | <Size> |
Latest revision as of 15:56, 9 October 2023
WMDD : WM Dialog Data | ||
---|---|---|
XML
WMCL << Other file types >> WMM |
General information
- The XML on this page is compatible with OniSplit v0.9.61.0.
- The "WM" in "WM Dialog Data" stands for "Window Manager", the name of the UI subsystem.
- WMDD files are global (level0_Final.dat).
- A WMDD file contains either a screen with controls (e.g. WMDDdialog_mainmenu) or a dialog with buttons (e.g. WMDDdialog_ChangeRestart).
- Open question: Does WMDDdialog_text_console define the size of "text consoles" as 460x410?
- Oni's out-of-game windows overlay each other. The parent window becomes visible if you remove the background (see image on right).
XML structure
<?xml version="1.0" encoding="utf-8"?> <Oni> <WMDD id="0"> <Caption>Options</Caption> <Id>152</Id> <State>Visible</State> <Style>Center</Style> <X>0</X> <Y>0</Y> <Width>640</Width> <Height>480</Height> <Controls> [...] </Controls> </Instance> </Oni>
[...] means at least one WMDDControl block.
Example
<WMDDControl> <Text>Options</Text> <Class>Label</Class> <Id>0</Id> <State>1</State> <Style>1114112</Style> <X>5</X> <Y>10</Y> <Width>70</Width> <Height>20</Height> <Font> <Family>TSFFTahoma</Family> <Style>Bold</Style> <Color>255 127 0</Color> <Size>10</Size> </Font> </WMDDControl>
- If you have a TXMB in your WMDD, don't put additional <WMDDControl> blocks under the block with the TXMB or your new blocks will be hidden.
- The block is always the same if <Text> contains "outline":
<Text>outline</Text> <Class>Title</Class> <Id>0</Id> <State>5</State> <Style>65536</Style>
Header
XML tag | Type | Flags and descriptions |
---|---|---|
<Caption> | char[256] | page name/title |
<Id> | int16 | page ID, looked up by the game application |
<State> | flag |
|
<Style> | flag/int32 |
|
<X> | int16 | align (always 0 in the header) |
<Y> | int16 | align (always 0 in the header) |
<Width> | int16 | X dimension (always 640 in the header?) |
<Height> | int16 | Y dimension (always 480 in the header?) |
<WMDDControl>
XML tag | Type | Flags and descriptions |
---|---|---|
<Text> | char[256] |
|
<Class> | flag |
|
<Id> | int16 | page ID, looked up by game application |
<State> | flag |
|
<Style> | flag |
Control specific stylesGroupbox/box:
Button:
Checkbox:
Radio button:
Edit field:
Listbox:
Picture:
Popup menu:
Text field:
|
<X> | int16 | align (relative to the top left corner of the window) |
<Y> | int16 | align (relative to the top left corner of the window) |
<Width> | int16 | X dimension |
<Height> | int16 | Y dimension |
<Family> | link32 | link to TSFF, usually "TSFFTahoma" |
<Style> | flag |
|
<Color> | color32 | RGB range, e.g. 255 127 0 (for orange) |
<Size> | int16 | font size is usually 10; 7 for "<Text>outline</Text>" |