GUI updated with revised twin-coordinate system (still have to make most of the objects use it, though).
This was SVN commit r1318.
This commit is contained in:
parent
cae40c819c
commit
2c3ce94950
@ -34,9 +34,11 @@
|
||||
<script file="gui/test/functions_atlas.js"><![CDATA[
|
||||
]]></script>
|
||||
|
||||
<script file="gui/test/functions_session.js"><![CDATA[
|
||||
initSession();
|
||||
writeConsole("Loaded GUI functions.");
|
||||
]]></script>
|
||||
<script file="gui/test/functions_session_group_pane.js"><![CDATA[
|
||||
]]></script>
|
||||
|
||||
<script file="gui/test/functions_session.js"><![CDATA[
|
||||
initSession();
|
||||
]]></script>
|
||||
|
||||
</objects>
|
||||
|
File diff suppressed because it is too large
Load Diff
54
binaries/data/mods/official/gui/test/6_global.xml
Executable file
54
binaries/data/mods/official/gui/test/6_global.xml
Executable file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
|
||||
|
||||
<!DOCTYPE objects SYSTEM "../gui.dtd">
|
||||
|
||||
<objects>
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
- GLOBAL OBJECTS -
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<object type="empty" name="always_on" hotkey="alwayson.toggle" size="0 0 100% 100%" z="1" hidden="false">
|
||||
<action on="Press"><![CDATA[
|
||||
GUIObjectToggle("always_on");
|
||||
]]></action>
|
||||
|
||||
<object type="button" name="exit_button" sprite="exit_sprite" sprite-over="exit_sprite-over" size="100%-18 2 100%-2 18" z="1000" hidden="false">
|
||||
<action on="Press"><![CDATA[
|
||||
exit();
|
||||
]]></action>
|
||||
|
||||
<!-- START temporary code
|
||||
This code only applies to the main menu, I don't know how it'll behave ingame. It is temporary and should be removed as soon as we got proper tooltip support implemented. -->
|
||||
<action on="MouseEnter"><![CDATA[
|
||||
tooltipObject = getGUIObjectByName("pregame-mainmenu-tooltip");
|
||||
tooltipObject.caption = "Tired of 0 A.D. ? Click here to leave and reenter the real world.";
|
||||
GUIObjectUnhide("pregame-mainmenu-tooltip");
|
||||
]]></action>
|
||||
<action on="MouseLeave"><![CDATA[
|
||||
GUIObjectHide("pregame-mainmenu-tooltip");
|
||||
]]></action>
|
||||
<!-- END temporary code -->
|
||||
</object>
|
||||
|
||||
<!-- TEMPORARY END GAME BUTTON; REMOVE WHEN GAME MENU IMPLEMENTED; BUTTON IS OUTSIDE OF pregame_gui IN ORDER TO BE VISIBLE DURING GAME -->
|
||||
|
||||
<object type="button" name="End_Game_Button" sprite="sprite1" sprite-over="sprite1-over" sprite-pressed="sprite1-pressed" z="105" textcolor="0 0 0" text-align="center" text-valign="center" hidden="true">End Game
|
||||
<action on="Load"><![CDATA[
|
||||
AddSizeString(this.name,
|
||||
"100%-150 100%-53 100%-30 100%-32",
|
||||
"100%-150 0%+32 100%-30 0%+53");
|
||||
]]></action>
|
||||
<action on="Press"><![CDATA[
|
||||
endGame();
|
||||
GUIObjectHide("session_gui");
|
||||
GUIObjectHide("End_Game_Button");
|
||||
GUIObjectUnhide("pregame_gui");
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
</object>
|
||||
|
||||
</objects>
|
@ -1,10 +1,48 @@
|
||||
function initSession()
|
||||
{
|
||||
GUIType="bottom";
|
||||
GUIStyleName = new Array();
|
||||
GUIStyleSize1 = new Array();
|
||||
GUIStyleSize2 = new Array();
|
||||
GUIStyle_Last = 0;
|
||||
|
||||
// Coord-style size table.
|
||||
SizeCoord = new Array();
|
||||
SizeCoord.last = 0;
|
||||
|
||||
// Standard portrait widths.
|
||||
crd_portrait_lrg_width = 64;
|
||||
crd_portrait_lrg_height = 64;
|
||||
crd_portrait_sml_width = 32;
|
||||
crd_portrait_sml_height = 32;
|
||||
|
||||
initGroupPane();
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddSizeCoord(objectName, left1, top1, right1, bottom1, rleft1, rtop1, rright1, rbottom1, left2, top2, right2, bottom2, rleft2, rtop2, rright2, rbottom2)
|
||||
{
|
||||
// Used to store the two GUI style sizes for an object on creation (specified as coordinates).
|
||||
// Used later by FlipGUI() to switch the objects to a new set of positions.
|
||||
|
||||
SizeCoord[SizeCoord.last] = new Object();
|
||||
SizeCoord[SizeCoord.last].name = objectName;
|
||||
SizeCoord[SizeCoord.last].size1 = new GUISize(left1, top1, right1, bottom1, rleft1, rtop1, rright1, rbottom1);
|
||||
SizeCoord[SizeCoord.last].size2 = new GUISize(left2, top2, right2, bottom2, rleft2, rtop2, rright2, rbottom2);
|
||||
|
||||
SizeCoord.last++; // Increment counter for next entry.
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddSizeString(objectName, size1, size2)
|
||||
{
|
||||
// Used to store the two GUI style sizes for an object on creation (specified as strings).
|
||||
// Used later by FlipGUI() to switch the objects to a new set of positions.
|
||||
|
||||
SizeCoord[SizeCoord.last] = new Object();
|
||||
SizeCoord[SizeCoord.last].name = objectName;
|
||||
SizeCoord[SizeCoord.last].size1 = size1;
|
||||
SizeCoord[SizeCoord.last].size2 = size2;
|
||||
|
||||
SizeCoord.last++; // Increment counter for next entry.
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
@ -33,7 +71,7 @@ function setPortrait(objectName, portraitString)
|
||||
|
||||
function setSize(objectName, sizeString)
|
||||
{
|
||||
// Use this function as a shortcut to change the size of a GUI control.
|
||||
// Use this function as a shortcut to change the size of a GUI control, specifying a size string.
|
||||
|
||||
// Get GUI object
|
||||
GUIObject = getGUIObjectByName(objectName);
|
||||
@ -101,7 +139,12 @@ function getObjectInfo()
|
||||
|
||||
// Update portrait
|
||||
if (selection[0].traits.id.icon)
|
||||
setPortrait("session_panel_status_portrait", selection[0].traits.id.icon);
|
||||
{
|
||||
if (selection[0].traits.id.icon_cell)
|
||||
setPortrait("session_panel_status_portrait", selection[0].traits.id.icon + "_" + selection[0].traits.id.icon_cell);
|
||||
else
|
||||
setPortrait("session_panel_status_portrait", selection[0].traits.id.icon);
|
||||
}
|
||||
|
||||
// Update hitpoints
|
||||
if (selection[0].traits.health.curr & selection[0].traits.health.hitpoints)
|
||||
@ -122,7 +165,7 @@ function getObjectInfo()
|
||||
// Best solution would be to base this off a "new entities selected" instead of an on-tick.
|
||||
if (
|
||||
// getGUIObjectByName("session_group_pane").hidden == true ||
|
||||
selection.length != MultipleEntitiesSelected)
|
||||
selection.length != getGlobal().MultipleEntitiesSelected)
|
||||
{
|
||||
|
||||
// Reveal Group Pane.
|
||||
@ -147,10 +190,10 @@ function getObjectInfo()
|
||||
switch (GUIType)
|
||||
{
|
||||
case "top":
|
||||
setSize("session_group_pane_bg", GUIStyleSize1[FlipGUILoop]);
|
||||
setSize("session_group_pane_bg", SizeCoord[FlipGUILoop].size1);
|
||||
break;
|
||||
case "bottom":
|
||||
setSize("session_group_pane_bg", GUIStyleSize2[FlipGUILoop]);
|
||||
setSize("session_group_pane_bg", SizeCoord[FlipGUILoop].size2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -204,22 +247,7 @@ function getObjectInfo()
|
||||
getGUIObjectByName("session_group_pane").hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddSize(objectName, objectSize1, objectSize2)
|
||||
{
|
||||
// Used to store the two GUI style sizes for an object on creation.
|
||||
// Used later by FlipGUI() to switch the objects to a new set of positions.
|
||||
|
||||
GUIStyleName[GUIStyle_Last] = objectName;
|
||||
GUIStyleSize1[GUIStyle_Last] = objectSize1;
|
||||
GUIStyleSize2[GUIStyle_Last] = objectSize2;
|
||||
|
||||
// writeConsole("Added " + GUIStyle_Last + ": " + GUIStyleName[GUIStyle_Last] + " (" + GUIStyleSize1[GUIStyle_Last] + ", " + GUIStyleSize2[GUIStyle_Last] + ").");
|
||||
|
||||
GUIStyle_Last++; // Increment counter for next entry.
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
@ -254,50 +282,50 @@ function FlipGUI(NewGUIType)
|
||||
GUIObjectUnhide("always_on");
|
||||
|
||||
// Seek through all sizes created.
|
||||
for (FlipGUILoop = 0; FlipGUILoop < GUIStyle_Last; FlipGUILoop++)
|
||||
for (FlipGUILoop = 0; FlipGUILoop < SizeCoord.last; FlipGUILoop++)
|
||||
{
|
||||
// Set each object to the other size.
|
||||
switch (GUIType)
|
||||
{
|
||||
case "top":
|
||||
setSize(GUIStyleName[FlipGUILoop], GUIStyleSize1[FlipGUILoop]);
|
||||
switch (GUIStyleName[FlipGUILoop]){
|
||||
setSize(SizeCoord[FlipGUILoop].name, SizeCoord[FlipGUILoop].size1);
|
||||
switch (SizeCoord[FlipGUILoop].name){
|
||||
case "session_panel_minimap_segbottom1":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = GUIStyleName[FlipGUILoop];
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = SizeCoord[FlipGUILoop].name;
|
||||
break;
|
||||
case "session_panel_minimap_segbottom2":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = GUIStyleName[FlipGUILoop];
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = SizeCoord[FlipGUILoop].name;
|
||||
break;
|
||||
case "session_panel_minimap_segbottom3":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = GUIStyleName[FlipGUILoop];
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = SizeCoord[FlipGUILoop].name;
|
||||
break;
|
||||
case "session_panel_minimap_segbottom4":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = GUIStyleName[FlipGUILoop];
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = SizeCoord[FlipGUILoop].name;
|
||||
break;
|
||||
case "session_panel_status_bg":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = "session_panel_status_bg-top";
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = "session_panel_status_bg-top";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "bottom":
|
||||
setSize(GUIStyleName[FlipGUILoop], GUIStyleSize2[FlipGUILoop]);
|
||||
switch (GUIStyleName[FlipGUILoop]){
|
||||
setSize(SizeCoord[FlipGUILoop].name, SizeCoord[FlipGUILoop].size2);
|
||||
switch (SizeCoord[FlipGUILoop].name){
|
||||
case "session_panel_minimap_segbottom1":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = "session_panel_minimap_segtop1";
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = "session_panel_minimap_segtop1";
|
||||
break;
|
||||
case "session_panel_minimap_segbottom2":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = "session_panel_minimap_segtop2";
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = "session_panel_minimap_segtop2";
|
||||
break;
|
||||
case "session_panel_minimap_segbottom3":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = "session_panel_minimap_segtop3";
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = "session_panel_minimap_segtop3";
|
||||
break;
|
||||
case "session_panel_minimap_segbottom4":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = "session_panel_minimap_segtop4";
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = "session_panel_minimap_segtop4";
|
||||
break;
|
||||
case "session_panel_status_bg":
|
||||
getGUIObjectByName(GUIStyleName[FlipGUILoop]).sprite = "session_panel_status_bg-bottom";
|
||||
getGUIObjectByName(SizeCoord[FlipGUILoop].name).sprite = "session_panel_status_bg-bottom";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
103
binaries/data/mods/official/gui/test/functions_session_group_pane.js
Executable file
103
binaries/data/mods/official/gui/test/functions_session_group_pane.js
Executable file
@ -0,0 +1,103 @@
|
||||
function initGroupPane()
|
||||
{
|
||||
// Populate the table of Group Pane portrait coordinates.
|
||||
|
||||
// Group Pane table.
|
||||
crd_grppane_prt_col = new Array();
|
||||
crd_grppane_prt_col.last = 0; // Last size added.
|
||||
crd_grppane_prt_col.style = 2; // Style length.
|
||||
crd_grppane_prt_row = new Array();
|
||||
crd_grppane_prt_row_bar = new Array();
|
||||
crd_grppane_prt_row.last = 0; // Last size added.
|
||||
crd_grppane_prt_row.style = 2; // Style length.
|
||||
|
||||
// Build table of group pane coordinates.
|
||||
initGroupPaneTable();
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function initGroupPaneTable()
|
||||
{
|
||||
AddGroupPaneRow(0, 32, 100, -70); // Row 0
|
||||
AddGroupPaneCol(50, -16, 50, -16); // Col 0
|
||||
AddGroupPaneCol(50, -52, 50, -52); // Col 1
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddGroupPaneCol(rleft1, left1, rleft2, left2)
|
||||
{
|
||||
// Add a set of column coordinates to the Group Pane table.
|
||||
|
||||
crd_grppane_prt_col[crd_grppane_prt_col.last] = new Array();
|
||||
|
||||
style=0;
|
||||
crd_grppane_prt_col[crd_grppane_prt_col.last][style] = new Array();
|
||||
crd_grppane_prt_col[crd_grppane_prt_col.last][style].size = new GUISize(left1, 0, left1 + crd_portrait_sml_width, 0, rleft1, 0, rleft1, 0);
|
||||
|
||||
style=1;
|
||||
crd_grppane_prt_col[crd_grppane_prt_col.last][style] = new Array();
|
||||
crd_grppane_prt_col[crd_grppane_prt_col.last][style].size = new GUISize(left2, 0, left2 + crd_portrait_sml_width, 0, rleft2, 0, rleft2, 0);
|
||||
|
||||
crd_grppane_prt_col.last++; // Increment array.
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddGroupPaneRow(rtop1, top1, rtop2, top2)
|
||||
{
|
||||
// Add a set of row coordinates to the Group Pane table.
|
||||
|
||||
crd_grppane_prt_row[crd_grppane_prt_row.last] = new Array();
|
||||
|
||||
style=0;
|
||||
crd_grppane_prt_row[crd_grppane_prt_row.last][style] = new Array();
|
||||
crd_grppane_prt_row[crd_grppane_prt_row.last][style].size = new GUISize(0, top1, 0, top1 + crd_portrait_sml_height, 0, rtop1, 0, rtop1);
|
||||
|
||||
style=1;
|
||||
crd_grppane_prt_row[crd_grppane_prt_row.last][style] = new Array();
|
||||
crd_grppane_prt_row[crd_grppane_prt_row.last][style].size = new GUISize(0, top2, 0, top2 + crd_portrait_sml_height, 0, rtop2, 0, rtop2);
|
||||
|
||||
crd_grppane_prt_row.last++; // Increment array.
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddSizeGroupPane(objectName, row, col)
|
||||
{
|
||||
// Used to store the two GUI style sizes for an object on creation.
|
||||
// This is a special method that uses the group pane table to specify values.
|
||||
// Used later by FlipGUI() to switch the objects to a new set of positions.
|
||||
|
||||
SizeCoord[SizeCoord.last] = new Object();
|
||||
SizeCoord[SizeCoord.last].name = objectName;
|
||||
|
||||
style = 0; // Set top GUI style.
|
||||
size_col = crd_grppane_prt_col[col][style].size;
|
||||
size_row = crd_grppane_prt_row[row][style].size;
|
||||
SizeCoord[SizeCoord.last].size1 = new GUISize(size_col.left, size_row.top, size_col.right, size_row.bottom, size_col.rleft, size_row.rtop, size_col.rright, size_row.rbottom);
|
||||
|
||||
style = 1; // Set bottom GUI style.
|
||||
size_col = crd_grppane_prt_col[col][style].size;
|
||||
size_row = crd_grppane_prt_row[row][style].size;
|
||||
SizeCoord[SizeCoord.last].size2 = new GUISize(size_col.left, size_row.top, size_col.right, size_row.bottom, size_col.rleft, size_row.rtop, size_col.rright, size_row.rbottom);
|
||||
|
||||
SizeCoord.last++; // Increment counter for next entry.
|
||||
}
|
||||
|
||||
// ====================================================================
|
||||
|
||||
function AddSizeGroupPaneBar(objectName)
|
||||
{
|
||||
// Create a health bar for the last group pane portrait created.
|
||||
|
||||
var size1 = SizeCoord[SizeCoord.last-1].size1;
|
||||
var size2 = SizeCoord[SizeCoord.last-1].size2;
|
||||
|
||||
AddSizeCoord(objectName,
|
||||
size1.left, size1.bottom+2, size1.right, size1.bottom+6, size1.rleft, size1.rtop, size1.rright, size1.rbottom,
|
||||
size2.left, size2.bottom+2, size2.right, size2.bottom+6, size2.rleft, size2.rtop, size2.rright, size2.rbottom);
|
||||
}
|
||||
|
||||
// ====================================================================
|
@ -296,7 +296,7 @@
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
ENTITY PORTRAITS
|
||||
ENTITY SINGLE PORTRAITS
|
||||
==========================================
|
||||
-->
|
||||
|
||||
@ -366,6 +366,18 @@
|
||||
<image texture="ui_portrait_structure_heleho_64-grey.png" texture-size="0 0 100% 100%" size="0 0 100% 100%" />
|
||||
</sprite>
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
ENTITY SHEET PORTRAITS
|
||||
==========================================
|
||||
-->
|
||||
<sprite name="ui_portrait_sheet_rome_1_64">
|
||||
<image texture="ui_portrait_sheet_rome_64.png" real-texture-placement="0 0 64 64" texture-size="0 0 100% 100%" size="0 0 100% 100%"/>
|
||||
</sprite>
|
||||
<sprite name="ui_portrait_sheet_rome_2_64">
|
||||
<image texture="ui_portrait_sheet_rome_64.png" real-texture-placement="64 0 128 64" texture-size="0 0 100% 100%" size="0 0 100% 100%"/>
|
||||
</sprite>
|
||||
|
||||
<!--
|
||||
==========================================
|
||||
TEMPORARY IMAGES
|
||||
|
@ -29,6 +29,8 @@
|
||||
sprite-over="ui_portrait_default_64-lit"
|
||||
sprite-disabled="ui_portrait_default_64-grey"
|
||||
tooltip-style="session-tooltip"
|
||||
text-align="right"
|
||||
textcolor="255 255 255"
|
||||
/>
|
||||
|
||||
<!-- Entity progress bar. -->
|
||||
|
Loading…
Reference in New Issue
Block a user