Ticket #2622: gui_moddability.diff
File gui_moddability.diff, 13.2 KB (added by , 10 years ago) |
---|
-
binaries/data/mods/public/gui/session/diplomacy_window.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 3 <objects> 4 <object type="text" style="TitleText" size="50%-96 -16 50%+96 16"> 5 <translatableAttribute id="caption">Diplomacy</translatableAttribute> 6 </object> 7 8 <object name="diplomacyHeader" size="32 32 100%-32 64"> 9 <object name="diplomacyHeaderName" size="0 0 150 100%" type="text" style="chatPanel" ghost="true"> 10 <translatableAttribute id="caption">Name</translatableAttribute> 11 </object> 12 <object name="diplomacyHeaderCiv" size="150 0 250 100%" type="text" style="chatPanel" ghost="true"> 13 <translatableAttribute id="caption">Civilization</translatableAttribute> 14 </object> 15 <object name="diplomacyHeaderTeam" size="250 0 300 100%" type="text" style="chatPanel" ghost="true"> 16 <translatableAttribute id="caption">Team</translatableAttribute> 17 </object> 18 <object name="diplomacyHeaderTheirs" size="300 0 360 100%" type="text" style="chatPanel" ghost="true"> 19 <translatableAttribute id="caption">Theirs</translatableAttribute> 20 </object> 21 <object name="diplomacyHeaderAlly" size="100%-180 0 100%-160 100%" type="text" style="chatPanel" tooltip_style="sessionToolTipBold"> 22 <translatableAttribute id="caption">A</translatableAttribute> 23 <translatableAttribute id="tooltip">Ally</translatableAttribute> 24 </object> 25 <object name="diplomacyHeaderNeutral" size="100%-160 0 100%-140 100%" type="text" style="chatPanel" tooltip_style="sessionToolTipBold"> 26 <translatableAttribute id="caption">N</translatableAttribute> 27 <translatableAttribute id="tooltip">Neutral</translatableAttribute> 28 </object> 29 <object name="diplomacyHeaderEnemy" size="100%-140 0 100%-120 100%" type="text" style="chatPanel" tooltip_style="sessionToolTipBold"> 30 <translatableAttribute id="caption">E</translatableAttribute> 31 <translatableAttribute id="tooltip">Enemy</translatableAttribute> 32 </object> 33 <object name="diplomacyHeaderTribute" size="100%-110 0 100% 100%" type="text" style="chatPanel"> 34 <translatableAttribute id="caption">Tribute</translatableAttribute> 35 </object> 36 </object> 37 <object size="32 64 100%-32 384"> 38 <repeat count="16"> 39 <object name="diplomacyPlayer[n]" size="0 0 100% 20" type="image" hidden="false"> 40 <object name="diplomacyPlayerName[n]" size="0 0 150 100%" type="text" style="chatPanel" ghost="true"/> 41 <object name="diplomacyPlayerCiv[n]" size="150 0 250 100%" type="text" style="chatPanel" ghost="true"/> 42 <object name="diplomacyPlayerTeam[n]" size="250 0 300 100%" type="text" style="chatPanel" ghost="true"/> 43 <object name="diplomacyPlayerTheirs[n]" size="300 0 360 100%" type="text" style="chatPanel" ghost="true"/> 44 45 <!-- Diplomatic stance - selection --> 46 <object name="diplomacyPlayerAlly[n]" size="100%-180 0 100%-160 100%" type="button" style="StoneButton" hidden="true"/> 47 <object name="diplomacyPlayerNeutral[n]" size="100%-160 0 100%-140 100%" type="button" style="StoneButton" hidden="true"/> 48 <object name="diplomacyPlayerEnemy[n]" size="100%-140 0 100%-120 100%" type="button" style="StoneButton" hidden="true"/> 49 50 <!-- Tribute --> 51 <object name="diplomacyPlayerTributeFood[n]" size="100%-110 0 100%-90 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true"> 52 <object name="diplomacyPlayerTributeFoodImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/food.png" ghost="true"/> 53 </object> 54 <object name="diplomacyPlayerTributeWood[n]" size="100%-90 0 100%-70 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true"> 55 <object name="diplomacyPlayerTributeWoodImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/wood.png" ghost="true"/> 56 </object> 57 <object name="diplomacyPlayerTributeStone[n]" size="100%-70 0 100%-50 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true"> 58 <object name="diplomacyPlayerTributeStoneImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/stone.png" ghost="true"/> 59 </object> 60 <object name="diplomacyPlayerTributeMetal[n]" size="100%-50 0 100%-30 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true"> 61 <object name="diplomacyPlayerTributeMetalImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/metal.png" ghost="true"/> 62 </object> 63 </object> 64 </repeat> 65 </object> 66 67 <object size="50%-64 100%-50 50%+64 100%-22" type="button" style="StoneButton"> 68 <translatableAttribute id="caption">Close</translatableAttribute> 69 <action on="Press">closeDiplomacy();</action> 70 </object> 71 </objects> -
binaries/data/mods/public/gui/session/session.xml
Property changes on: binaries/data/mods/public/gui/session/diplomacy_window.xml ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/xml \ No newline at end of property
8 8 <script file="gui/common/music.js"/> 9 9 <script file="gui/common/timer.js"/> 10 10 <script file="gui/common/colorFades.js"/> 11 <script file="gui/session/session.js"/>12 <script file="gui/session/selection.js"/>13 11 <script file="gui/session/placement.js"/> 14 <script file="gui/session/input.js"/> 15 <script file="gui/session/menu.js"/> 16 <script file="gui/session/selection_details.js"/> 17 <script file="gui/session/unit_commands.js"/> 18 <script file="gui/session/messages.js"/> 19 <script file="gui/session/utility_functions.js"/> 12 <script directory="gui/session/"/> 20 13 21 14 <object name="sn" hotkey="session.gui.toggle"> 22 15 <action on="Tick"> … … 417 410 type="image" 418 411 hidden="true" 419 412 sprite="ModernDialog" 420 > 421 <object type="text" style="TitleText" size="50%-96 -16 50%+96 16"> 422 <translatableAttribute id="caption">Diplomacy</translatableAttribute> 423 </object> 413 include="gui/session/diplomacy_window.xml" 414 /> 424 415 425 <object name="diplomacyHeader" size="32 32 100%-32 64">426 <object name="diplomacyHeaderName" size="0 0 150 100%" type="text" style="chatPanel" ghost="true">427 <translatableAttribute id="caption">Name</translatableAttribute>428 </object>429 <object name="diplomacyHeaderCiv" size="150 0 250 100%" type="text" style="chatPanel" ghost="true">430 <translatableAttribute id="caption">Civilization</translatableAttribute>431 </object>432 <object name="diplomacyHeaderTeam" size="250 0 300 100%" type="text" style="chatPanel" ghost="true">433 <translatableAttribute id="caption">Team</translatableAttribute>434 </object>435 <object name="diplomacyHeaderTheirs" size="300 0 360 100%" type="text" style="chatPanel" ghost="true">436 <translatableAttribute id="caption">Theirs</translatableAttribute>437 </object>438 <object name="diplomacyHeaderAlly" size="100%-180 0 100%-160 100%" type="text" style="chatPanel" tooltip_style="sessionToolTipBold">439 <translatableAttribute id="caption">A</translatableAttribute>440 <translatableAttribute id="tooltip">Ally</translatableAttribute>441 </object>442 <object name="diplomacyHeaderNeutral" size="100%-160 0 100%-140 100%" type="text" style="chatPanel" tooltip_style="sessionToolTipBold">443 <translatableAttribute id="caption">N</translatableAttribute>444 <translatableAttribute id="tooltip">Neutral</translatableAttribute>445 </object>446 <object name="diplomacyHeaderEnemy" size="100%-140 0 100%-120 100%" type="text" style="chatPanel" tooltip_style="sessionToolTipBold">447 <translatableAttribute id="caption">E</translatableAttribute>448 <translatableAttribute id="tooltip">Enemy</translatableAttribute>449 </object>450 <object name="diplomacyHeaderTribute" size="100%-110 0 100% 100%" type="text" style="chatPanel">451 <translatableAttribute id="caption">Tribute</translatableAttribute>452 </object>453 </object>454 455 <object size="32 64 100%-32 384">456 <repeat count="16">457 <object name="diplomacyPlayer[n]" size="0 0 100% 20" type="image" hidden="false">458 <object name="diplomacyPlayerName[n]" size="0 0 150 100%" type="text" style="chatPanel" ghost="true"/>459 <object name="diplomacyPlayerCiv[n]" size="150 0 250 100%" type="text" style="chatPanel" ghost="true"/>460 <object name="diplomacyPlayerTeam[n]" size="250 0 300 100%" type="text" style="chatPanel" ghost="true"/>461 <object name="diplomacyPlayerTheirs[n]" size="300 0 360 100%" type="text" style="chatPanel" ghost="true"/>462 463 <!-- Diplomatic stance - selection -->464 <object name="diplomacyPlayerAlly[n]" size="100%-180 0 100%-160 100%" type="button" style="StoneButton" hidden="true"/>465 <object name="diplomacyPlayerNeutral[n]" size="100%-160 0 100%-140 100%" type="button" style="StoneButton" hidden="true"/>466 <object name="diplomacyPlayerEnemy[n]" size="100%-140 0 100%-120 100%" type="button" style="StoneButton" hidden="true"/>467 468 <!-- Tribute -->469 <object name="diplomacyPlayerTributeFood[n]" size="100%-110 0 100%-90 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">470 <object name="diplomacyPlayerTributeFoodImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/food.png" ghost="true"/>471 </object>472 <object name="diplomacyPlayerTributeWood[n]" size="100%-90 0 100%-70 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">473 <object name="diplomacyPlayerTributeWoodImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/wood.png" ghost="true"/>474 </object>475 <object name="diplomacyPlayerTributeStone[n]" size="100%-70 0 100%-50 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">476 <object name="diplomacyPlayerTributeStoneImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/stone.png" ghost="true"/>477 </object>478 <object name="diplomacyPlayerTributeMetal[n]" size="100%-50 0 100%-30 100%" type="button" style="iconButton" tooltip_style="sessionToolTipBold" hidden="true">479 <object name="diplomacyPlayerTributeMetalImage[n]" type="image" size="0 0 100% 100%" sprite="stretched:session/icons/resources/metal.png" ghost="true"/>480 </object>481 </object>482 </repeat>483 </object>484 485 <object size="50%-64 100%-50 50%+64 100%-22" type="button" style="StoneButton">486 <translatableAttribute id="caption">Close</translatableAttribute>487 <action on="Press">closeDiplomacy();</action>488 </object>489 </object>490 491 416 <!-- ================================ ================================ --> 492 417 <!-- Trade Window --> 493 418 <!-- ================================ ================================ --> -
source/gui/CGUI.cpp
1110 1110 ATTR(file); 1111 1111 ATTR(id); 1112 1112 ATTR(context); 1113 ATTR(include); 1113 1114 1114 1115 // 1115 1116 // Read Style and set defaults … … 1140 1141 1141 1142 bool NameSet = false; 1142 1143 bool ManuallySetZ = false; // if z has been manually set, this turn true 1144 bool ExternalChildren = false; 1143 1145 1146 CStrW inclusionPath; 1144 1147 CStr hotkeyTag; 1145 1148 1146 1149 // Now we can iterate all attributes and store … … 1170 1173 continue; 1171 1174 } 1172 1175 1176 if (attr.Name == attr_include) 1177 { 1178 ExternalChildren = true; 1179 inclusionPath = attr.Value.FromUTF8(); 1180 continue; 1181 } 1182 1173 1183 // Wire up the hotkey tag, if it has one 1174 1184 if (attr.Name == attr_hotkey) 1175 1185 hotkeyTag = attr.Value; … … 1211 1221 // Read Children 1212 1222 // 1213 1223 1214 // Iterate children1215 1224 XMBElementList children = Element.GetChildNodes(); 1225 CXeromyces XeroChildren; 1226 if (ExternalChildren) 1227 { 1228 Paths.insert(inclusionPath); 1216 1229 1230 if (XeroChildren.Load(g_VFS, inclusionPath) == PSRETURN_OK) 1231 { 1232 XMBElement node = XeroChildren.GetRoot(); 1233 1234 CStr root_name (XeroChildren.GetElementString(node.GetNodeName())); 1235 1236 if (root_name == "objects") 1237 children = node.GetChildNodes(); 1238 else 1239 LOGERROR(L"GUI: Error reading included XML: %ls, root element must have the name 'objects'.", inclusionPath.c_str()); 1240 } 1241 else 1242 LOGERROR(L"GUI: Error reading included XML: %ls", inclusionPath.c_str()); 1243 1244 // set pFile to the new CXeromyces file, as it's only used to handle the children from now on 1245 pFile = &XeroChildren; 1246 } 1247 1248 // Iterate children 1217 1249 for (i=0; i<children.Count; ++i) 1218 1250 { 1219 1251 // Get node … … 1433 1465 } 1434 1466 } 1435 1467 1468 CStrW directory (Element.GetAttributes().GetNamedItem( pFile->GetAttributeID("directory") ).FromUTF8()); 1469 if (!directory.empty()) 1470 { 1471 VfsPaths pathnames; 1472 vfs::GetPathnames(g_VFS, directory, L"*.js", pathnames); 1473 for (VfsPaths::iterator it = pathnames.begin(); it != pathnames.end(); ++it) 1474 { 1475 Paths.insert(*it); 1476 try 1477 { 1478 m_ScriptInterface->LoadGlobalScriptFile(*it); 1479 } 1480 catch (PSERROR_Scripting& e) 1481 { 1482 LOGERROR(L"GUI: Error executing script %ls: %hs", directory.c_str(), e.what()); 1483 } 1484 } 1485 } 1486 1436 1487 // Execute inline scripts 1437 1488 try 1438 1489 {