OBD:WMDD: Difference between revisions

From OniGalore
Jump to navigation Jump to search
mNo edit summary
m (changed family)
 
(27 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{OBD_File_Header|align=center|type=WMDD|prev=WMCL|next=WMM_|name=WM (Window Menu) Dialog Data|family=Global}}
{{OBD_File_Header|align=center|type=WMDD|prev=WMCL|next=WMM_|name=WM (WindowManager) Dialog Data|family=Interface}}




----
The image below shows the beginning of the file with the settings of the main window.
The image below shows the beginning of the file with the settings of the main window.




http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/wmdd_a.gif
[[Image:wmdd_all.gif]]




{| BORDER=1 WIDTH=100% CELLPADDING=2 CELLSPACING=1 BGCOLOR="#000000"
{{Table}}
|- BGCOLOR="#FFDDBB" ALIGN=CENTER
{{OBD_Table_Header}}
| WIDTH=15% | <B>Hex</B>
|- ALIGN=CENTER VALIGN=TOP
| <B>Translation</B>
{{OBDtr| 0x000 | res_id  |FF0000| 01 CE 09 00 | 1541 | 01541-dialog_mainmenu.WMDD }}
| <B>Meaning</B>
{{OBDtr| 0x004 | lev_id  |FFFF00| 01 00 00 00 | 0   | level 0 }}
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
{{OBDtr2| 0x008| char[256]|00FF00| Main Menu         | title }}
| BGCOLOR="#FF0000" | 01 05 06 00
{{OBDtr| 0x108 | int16    |00FFFF| 96 00      | 150  | ID (looked up from code) }}
| 1541
{{OBDtr| 0x10A | int16    |00FFFF| 00 00      | 0    | not used; always 0 }}
| ALIGN=LEFT | 01541-dialog_mainmenu.WMDD
{{OBDtr| 0x10C | int32    |FF00FF| 01 00 00 00 | 0x01 | state; the following values are used:
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
:0x'''01''' 00 00 00 - visible
| BGCOLOR="#FFFF00" | 01 00 00 00
:0x'''02''' 00 00 00 - disabled
| 0
:0x'''04''' 00 00 00 - unknown
| ALIGN=LEFT | level 0
}}
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
{{OBDtr| 0x110 | int32    |FF8000| 00 00 01 00 | 0x00010000  | style; the following values are used:
| BGCOLOR="#00FF00" COLSPAN=2 | <TT>Main Menu</TT>
:0x'''01''' 00 00 00 - draw default background
| ALIGN=LEFT | title of the window
:0x'''02''' 00 00 00 - resizable window (has a thick border)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
:0x'''04''' 00 00 00 - show title bar
| BGCOLOR="#00FFFF" | 96 00 00 00
:0x'''08''' 00 00 00 - show title (title bar required)
| 150
:0x'''10''' 00 00 00 - show close button (title bar required)
| ALIGN=LEFT | identification number, that this is the main menu dialog; do not change it
:0x'''20''' 00 00 00 - show restore button (title bar required)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
:0x'''40''' 00 00 00 - show minimize button (title bar required)
| BGCOLOR="#FF00FF" | 01 00 00 00
:0x00 00 '''01''' 00 - center window on screen (x, y coordinates are ignore when this style is used)
| 1
}}
| ALIGN=LEFT | window status; the following types are possible:
{{OBDtr| 0x114 | int16    |804080| 00 00      | 0    | x coordinate of the window }}
{{OBDtr| 0x116 | int16    |804080| 00 00      | 0    | y coordinate of the window }}
{{OBDtr| 0x118 | int16    |804040| 80 02      | 640  | width of the window }}
{{OBDtr| 0x11A | int16    |804040| E0 01      | 480  | height of the window }}
{{OBDtr| 0x11C | int32    |408080| 06 00 00 00 | 6    | array size }}
{{OBDtrBK}}
{{OBDtr2| 0x000 | char[256]|FFC8C8| New Game | text or:
:*TXMB/TXMP/PSpc name if class is picture
:*WMM_ name if class is popup menu
}}
{{OBDtr| 0x100 | int16    |FFFFC8| 04 00 | 4 | class; the following window classes exist in Oni (values in dec):
:1 - desktop (not used in dialogs)
:3 - box (<nowiki>=</nowiki> groupbox) (groups controls together within a border; called Title in OniSplit XML)
:4 - button
:5 - checkbox
:6 - dialog (not used in dialogs)
:7 - edit field
:8 - listbox
:9 - menu bar (not used in dialogs)
:10 - menu (not used in dialogs)
:11 - picture ([[OBD:TXMB|TXMB]], [[OBD:TXMP|TXMP]] or [[OBD:PSpc|PSpc]])
:12 - popup menu (<nowiki>=</nowiki> pulldown menu <nowiki>=</nowiki> drop-down menu) ([[OBD:WMM_|WMM_]])
:13 - progress bar
:14 - radio button
:16 - scrollbar (not used in dialogs)
:17 - slider
:20 - text (simple text string; called Label in OniSplit XML)
}}
{{OBDtr| 0x102 | int16    |C8FFC8| 64 00      | 100              | ID (looked up from code) }}
{{OBDtr| 0x104 | int32    |C8FFFF| 01 00 00 00 | 0x01            | state; the following values are used:
:0x'''01''' 00 00 00 -  visible
:0x'''02''' 00 00 00 -  disabled
:0x'''04''' 00 00 00 -  unknown
}}
{{OBDtr| 0x108 | int32    |FFC800| 00 00 03 00 | 0x030000          | style; the dialog styles above (at 0x110) and the following control specific styles can be used here:
if box:
:0x00 00 '''02''' 00 - draw text background
:0x00 00 '''04''' 00 - draw text


{| BORDER=0 WIDTH=100%
if button:
|- VALIGN=TOP
:0x00 00 '''01''' 00 - draw button
| ALIGN=RIGHT | 00&nbsp;-  
:0x00 00 '''02''' 00 - draw button text
| hide the window (if you use that, you'll get a black screen and the orange mouse cursor; that means you can't quit Oni, so you have to reset your computer)
:0x00 00 '''08''' 00 -  toggle button (like the ones used "in game" for help, diary etc.)
|- VALIGN=TOP
:0x00 00 '''10''' 00 -  default button (the button that coresponds to the Enter key)
| ALIGN=RIGHT | 01 -
| show the window
|}


|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
if checkbox:
| BGCOLOR="#FFC8C8" | 00 00  
:0x00 00 '''01''' 00 - draw label
| 0
| ALIGN=LEFT | window design; the design is stored as bits, so  the following bits are possible:


{| BORDER=0 WIDTH=100%
if radiobutton:
|- VALIGN=TOP
:0x00 00 '''01''' 00 - draw label
| ALIGN=RIGHT | 01 00 -  
| thin light blue coloured border around the window (background)
|- VALIGN=TOP
| ALIGN=RIGHT | 02 00 -
| thick light lila coloured border around the window (foreground)
|- VALIGN=TOP
| ALIGN=RIGHT | 04 00 -
| light lila coloured title bar
|- VALIGN=TOP
| ALIGN=RIGHT | 08 00 -
| title
|- VALIGN=TOP
| ALIGN=RIGHT | 10 00 -
| disabled "close the window" box
|- VALIGN=TOP
| ALIGN=RIGHT | 20 00 -
| disabled "restore the window" box
|- VALIGN=TOP
| ALIGN=RIGHT | 40 00 -
| disabled "minimize the window" box
|}
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8C8" | 01 00
| 1
| ALIGN=LEFT | window position; the following positions are possible:


00 - the window is located in the upper left corner of the screen<BR>01 - the window is located in the center of the screen
if edit field:
:0x00 00 '''01''' 00 - number only


|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
if listbox:
| BGCOLOR="#FFFFC8" | 00 00 00 00
:0x00 00 '''01''' 00 - draw scrollbar
| 0
:0x00 00 '''02''' 00 -  alphabetical order
| ALIGN=LEFT | unknown
:0x00 00 '''04''' 00 -  unselectable
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
:0x00 00 '''08''' 00 - contains text (without this it contains only "custom" data)
| BGCOLOR="#C8FFC8" | 80 02
:0x00 00 '''10''' 00 -  owner draw (the owner window will draw the list items)
| 640
:0x00 00 '''20''' 00 -  draw file/folder icons
| ALIGN=LEFT | width of the window
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFC8" | E0 01
| 480
| ALIGN=LEFT | height of the window
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | 06 00 00 00
| 6
| ALIGN=LEFT | 6 entries follow
|}


if picture:
:0x00 00 '''02''' 00 - ignore the picture name; the displayed picture is set at runtime


The following pic gives an example of an entry of the the main window (area edged in black).
if popup menu
:0x00 00 '''01''' 00 - use menu width; doesn't work
:0x00 00 '''02''' 00 - ignore the menu name; the menu is set at runtime


if text field:
:0x00 00 '''02''' 00 -  horizontal text align <nowiki>=</nowiki> center
:0x00 00 '''04''' 00 -  horizontal text align <nowiki>=</nowiki> right
:0x00 00 '''10''' 00 -  vertical text align <nowiki>=</nowiki> center
:0x00 00 '''80''' 00 -  owner draw (hides text)


http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/wmdd_p1.gif
}}
 
{{OBDtr| 0x10C | int16    |C87C64| 5E 01      | 350              | x coordinate (relative to the top left corner of the window) }}
 
{{OBDtr| 0x10E | int16    |C87C64| E6 00      | 230              | y coordinate (relative to the top left corner of the window) }}
{| BORDER=1 WIDTH=100% CELLPADDING=2 CELLSPACING=0
{{OBDtr| 0x110 | int16    |B0C3D4| B4 00      | 180              | width }}
|- BGCOLOR="#FFDDBB" ALIGN=CENTER
{{OBDtr| 0x112 | int16    |B0C3D4| 28 00      | 40              | height }}
| WIDTH=15% | <B>Hex</B>
{{OBDtr| 0x114 | link32  |E7CEA5| 01 02 00 00 | 2                | link to 00002-Tahoma.[[OBD:TSFF|TSFF]]}}
| WIDTH=15% | <B>Translation</B>
{{OBDtr| 0x118 | int32    |FFDDDD| 01 00 00 00 | 1                | font option; the following options are possible:
| WIDTH=70% | <B>Meaning</B>
:0 - normal font
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
:1 - '''bold''' font
| BGCOLOR="#FFC8FF" COLSPAN=2 | <TT>New Game</TT>
:2 - ''italic'' font
| ALIGN=LEFT | button text
}}
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
{{OBDtr| 0x11C | color32  |64AAAA| 00 7F FF FF | 0, 127, 255; 255 | font color (blue, green, red); transparency }}
| BGCOLOR="#FFC800" | 04 00
{{OBDtr| 0x120 | int8      |EBEBEB| 01          | 1                | ignored }}
| 4
{{OBDtr| 0x121 | int8      |EBEBEB| 00          | 0                | ignored }}
| ALIGN=LEFT | button type
{{OBDtr| 0x122 | int16    |8C8CCC| 0A 00       | 10              | font size (height) }}
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
|}
| BGCOLOR="#C800C8" | 64 00
| 100
| ALIGN=LEFT | button is enabled + link to the window; the links for this file are:


64&nbsp;- "new game" window<BR>65 - "load game" window<BR>66 - "options" window<BR>68 - "resume" window<BR>67 - "quit" window


|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
;Dialog ID
| BGCOLOR="#C87C64" | 01 00
:Since Oni looks dialogs up by ID, changing them arbitrarily is not recommended.
| 1
;Visible flag (0x10C)
| ALIGN=LEFT | button options
:A hidden/disabled window can't be activated from Oni, so if you hide the main menu, you'll have to shut down Oni from the Task Manager (or make it Blam ^^).
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
:With "-noswitch", you can switch to other applications whenever the mouse pointer is visible in Oni.
| BGCOLOR="#B0C3D4" | 00 00
;Item IDs (for this example)
| 0
:64 - "new game" window
| ALIGN=LEFT | unknown
:65 - "load game" window
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
:66 - "options" window
| BGCOLOR="#E7CEA5" | 00 00
:67 - "quit" window
| 0
:68 - "resume" window
| ALIGN=LEFT | window design, see table above
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | 03 00
| button+text
| ALIGN=LEFT | visibility bitset


01 - button<BR>02 - text
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 5E 01
| 350
| ALIGN=LEFT | x-position of the button (from the upper left corner of the window)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | E6 00
| 230
| ALIGN=LEFT | y-position of the button (from the upper left corner of the window)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#EBEBEB" | B4 00
| 180
| ALIGN=LEFT | x-dimension of the button (width)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#EBEBEB" | 28 00
| 40
| ALIGN=LEFT | y-dimension of the button (height)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#8C8CCC" | 01 02 00 00
| 2
| ALIGN=LEFT | link to 00002-Tahoma.[[OBD:TSFF|TSFF]]?
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#FF00C8" | 01 00
| 1
| ALIGN=LEFT | font option; the following options are possible:
00&nbsp;- normal font<BR>01 - <B>bold font</B><BR>02 - <I>italic font</I>
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#F0F096" | 00 00
| 0
| ALIGN=LEFT | unknown
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#00C864" | 00 7F FF FF
| 0, 127, 255, 255
| ALIGN=LEFT | font color (BGRA)
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#00C8FF" | 00 00
| 0
| ALIGN=LEFT | unknown
|- VALIGN=TOP ALIGN=CENTER BGCOLOR="#FFEEDD"
| BGCOLOR="#C80040" | 0A 00
| 10
| ALIGN=LEFT | font size
|}
;Bold/italic... a bitset?
:does 3 work as bold italic?


{{OBD_File_Footer|align=center|type=WMDD|prev=WMCL|next=WMM_|name=WM (WindowManager) Dialog Data|family=Interface}}


----
{{OBD}}
{{OBD_File_Footer|align=center|type=WMDD|prev=WMCL|next=WMM_|name=WM (Window Menu) Dialog Data|family=Global}}

Latest revision as of 01:48, 7 December 2023

ONI BINARY DATA
WMCL << Other file types >> WMM_
WMDD : WM (WindowManager) Dialog Data
switch to XML:WMDD page
Overview @ Oni Stuff
OBD.png


The image below shows the beginning of the file with the settings of the main window.


Wmdd all.gif


Offset Type Raw Hex Value Description
0x000 res_id 01 CE 09 00 1541 01541-dialog_mainmenu.WMDD
0x004 lev_id 01 00 00 00 0 level 0
0x008 char[256] Main Menu title
0x108 int16 96 00 150 ID (looked up from code)
0x10A int16 00 00 0 not used; always 0
0x10C int32 01 00 00 00 0x01 state; the following values are used:
0x01 00 00 00 - visible
0x02 00 00 00 - disabled
0x04 00 00 00 - unknown
0x110 int32 00 00 01 00 0x00010000 style; the following values are used:
0x01 00 00 00 - draw default background
0x02 00 00 00 - resizable window (has a thick border)
0x04 00 00 00 - show title bar
0x08 00 00 00 - show title (title bar required)
0x10 00 00 00 - show close button (title bar required)
0x20 00 00 00 - show restore button (title bar required)
0x40 00 00 00 - show minimize button (title bar required)
0x00 00 01 00 - center window on screen (x, y coordinates are ignore when this style is used)
0x114 int16 00 00 0 x coordinate of the window
0x116 int16 00 00 0 y coordinate of the window
0x118 int16 80 02 640 width of the window
0x11A int16 E0 01 480 height of the window
0x11C int32 06 00 00 00 6 array size
First element (black outline)
0x000 char[256] New Game text or:
  • TXMB/TXMP/PSpc name if class is picture
  • WMM_ name if class is popup menu
0x100 int16 04 00 4 class; the following window classes exist in Oni (values in dec):
1 - desktop (not used in dialogs)
3 - box (= groupbox) (groups controls together within a border; called Title in OniSplit XML)
4 - button
5 - checkbox
6 - dialog (not used in dialogs)
7 - edit field
8 - listbox
9 - menu bar (not used in dialogs)
10 - menu (not used in dialogs)
11 - picture (TXMB, TXMP or PSpc)
12 - popup menu (= pulldown menu = drop-down menu) (WMM_)
13 - progress bar
14 - radio button
16 - scrollbar (not used in dialogs)
17 - slider
20 - text (simple text string; called Label in OniSplit XML)
0x102 int16 64 00 100 ID (looked up from code)
0x104 int32 01 00 00 00 0x01 state; the following values are used:
0x01 00 00 00 - visible
0x02 00 00 00 - disabled
0x04 00 00 00 - unknown
0x108 int32 00 00 03 00 0x030000 style; the dialog styles above (at 0x110) and the following control specific styles can be used here:

if box:

0x00 00 02 00 - draw text background
0x00 00 04 00 - draw text

if button:

0x00 00 01 00 - draw button
0x00 00 02 00 - draw button text
0x00 00 08 00 - toggle button (like the ones used "in game" for help, diary etc.)
0x00 00 10 00 - default button (the button that coresponds to the Enter key)

if checkbox:

0x00 00 01 00 - draw label

if radiobutton:

0x00 00 01 00 - draw label

if edit field:

0x00 00 01 00 - number only

if listbox:

0x00 00 01 00 - draw scrollbar
0x00 00 02 00 - alphabetical order
0x00 00 04 00 - unselectable
0x00 00 08 00 - contains text (without this it contains only "custom" data)
0x00 00 10 00 - owner draw (the owner window will draw the list items)
0x00 00 20 00 - draw file/folder icons

if picture:

0x00 00 02 00 - ignore the picture name; the displayed picture is set at runtime

if popup menu

0x00 00 01 00 - use menu width; doesn't work
0x00 00 02 00 - ignore the menu name; the menu is set at runtime

if text field:

0x00 00 02 00 - horizontal text align = center
0x00 00 04 00 - horizontal text align = right
0x00 00 10 00 - vertical text align = center
0x00 00 80 00 - owner draw (hides text)


0x10C int16 5E 01 350 x coordinate (relative to the top left corner of the window)
0x10E int16 E6 00 230 y coordinate (relative to the top left corner of the window)
0x110 int16 B4 00 180 width
0x112 int16 28 00 40 height
0x114 link32 01 02 00 00 2 link to 00002-Tahoma.TSFF
0x118 int32 01 00 00 00 1 font option; the following options are possible:
0 - normal font
1 - bold font
2 - italic font
0x11C color32 00 7F FF FF 0, 127, 255; 255 font color (blue, green, red); transparency
0x120 int8 01 1 ignored
0x121 int8 00 0 ignored
0x122 int16 0A 00 10 font size (height)


Dialog ID
Since Oni looks dialogs up by ID, changing them arbitrarily is not recommended.
Visible flag (0x10C)
A hidden/disabled window can't be activated from Oni, so if you hide the main menu, you'll have to shut down Oni from the Task Manager (or make it Blam ^^).
With "-noswitch", you can switch to other applications whenever the mouse pointer is visible in Oni.
Item IDs (for this example)
64 - "new game" window
65 - "load game" window
66 - "options" window
67 - "quit" window
68 - "resume" window


ONI BINARY DATA
WMCL << Other file types >> WMM_
WMDD : WM (WindowManager) Dialog Data
Interface file