| 
							 | 
						 | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						PlaceObj('XTemplate', { | 
					
					
						
						| 
							 | 
							group = "GedApps", | 
					
					
						
						| 
							 | 
							id = "ModEditor", | 
					
					
						
						| 
							 | 
							save_in = "Ged", | 
					
					
						
						| 
							 | 
							PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
								'__class', "GedApp", | 
					
					
						
						| 
							 | 
								'Translate', true, | 
					
					
						
						| 
							 | 
								'Title', "Mod Editor", | 
					
					
						
						| 
							 | 
								'AppId', "ModEditor", | 
					
					
						
						| 
							 | 
								'InitialWidth', 1100, | 
					
					
						
						| 
							 | 
							}, { | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateFunc', { | 
					
					
						
						| 
							 | 
									'name', "Open(self, ...)", | 
					
					
						
						| 
							 | 
									'func', function (self, ...) | 
					
					
						
						| 
							 | 
										MountFolder(self.mod_content_path, self.mod_os_path) | 
					
					
						
						| 
							 | 
										return GedApp.Open(self, ...) | 
					
					
						
						| 
							 | 
									end, | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'ActionId', "File", | 
					
					
						
						| 
							 | 
									'ActionName', T(174683227646,  "File"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "main", | 
					
					
						
						| 
							 | 
									'OnActionEffect', "popup", | 
					
					
						
						| 
							 | 
								}, { | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Save", | 
					
					
						
						| 
							 | 
										'ActionName', T(280146583573,  "Save"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/save.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-S", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Send("GedSaveMod") | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "OpenFolder", | 
					
					
						
						| 
							 | 
										'ActionName', T(595712252411,  "Open Folder"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/explorer.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-O", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Op("GedOpOpenModFolder", "root") | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "GenTransTbl", | 
					
					
						
						| 
							 | 
										'ActionName', T(727097690549,  "Export Translation Table"), | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Op("GedOpGenTTableMod", "root") | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "PackMod", | 
					
					
						
						| 
							 | 
										'ActionName', T(906167416126,  "Pack Mod"), | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Op("GedOpPackMod", "root") | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateCode', { | 
					
					
						
						| 
							 | 
										'run', function (self, parent, context) | 
					
					
						
						| 
							 | 
											if XTemplates.ModEditorPlatformActions then | 
					
					
						
						| 
							 | 
												XTemplates.ModEditorPlatformActions:Eval(parent, context) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateGroup', { | 
					
					
						
						| 
							 | 
										'__condition', function (parent, context) return Platform.steam end, | 
					
					
						
						| 
							 | 
									}, { | 
					
					
						
						| 
							 | 
										PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
											'RolloverText', T(966025188900,  "Upload to Steam"), | 
					
					
						
						| 
							 | 
											'RolloverDisabledText', T(131688119141,  "Uploading to Steam is unavailable"), | 
					
					
						
						| 
							 | 
											'ActionId', "SteamUpload", | 
					
					
						
						| 
							 | 
											'ActionName', T(740063077677,  "Upload to Steam"), | 
					
					
						
						| 
							 | 
											'ActionIcon', "CommonAssets/UI/Ged/steam.tga", | 
					
					
						
						| 
							 | 
											'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
											'ActionToolbarSplit', true, | 
					
					
						
						| 
							 | 
											'ActionState', function (self, host) | 
					
					
						
						| 
							 | 
												return not host.steam_login and "disabled" | 
					
					
						
						| 
							 | 
											end, | 
					
					
						
						| 
							 | 
											'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
												host:Op("GedOpUploadModToSteam", "root") | 
					
					
						
						| 
							 | 
											end, | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateGroup', { | 
					
					
						
						| 
							 | 
										'__condition', function (parent, context) return Platform.epic end, | 
					
					
						
						| 
							 | 
									}, { | 
					
					
						
						| 
							 | 
										PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
											'RolloverText', T(602897019334,  "Upload to Epic Games"), | 
					
					
						
						| 
							 | 
											'RolloverDisabledText', T(584040368360,  "Uploading to Epic Games is unavailable"), | 
					
					
						
						| 
							 | 
											'ActionId', "EpicUpload", | 
					
					
						
						| 
							 | 
											'ActionName', T(848185994514,  "Upload to Epic Games"), | 
					
					
						
						| 
							 | 
											'ActionIcon', "CommonAssets/UI/Ged/epic_up", | 
					
					
						
						| 
							 | 
											'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
											'ActionToolbarSplit', true, | 
					
					
						
						| 
							 | 
											'ActionState', function (self, host) | 
					
					
						
						| 
							 | 
												 | 
					
					
						
						| 
							 | 
											end, | 
					
					
						
						| 
							 | 
											'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
												host:Op("GedOpUploadModToEpic", "root") | 
					
					
						
						| 
							 | 
											end, | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'ActionId', "Edit", | 
					
					
						
						| 
							 | 
									'ActionName', T(786174819535,  "Edit"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "main", | 
					
					
						
						| 
							 | 
									'OnActionEffect', "popup", | 
					
					
						
						| 
							 | 
								}, { | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Cut", | 
					
					
						
						| 
							 | 
										'ActionName', T(718930329684,  "Cut"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/cut.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-X", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpCutModItem", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
										'ActionContexts', { | 
					
					
						
						| 
							 | 
											"ContentRootPanelAction", | 
					
					
						
						| 
							 | 
											"ContentChildPanelAction", | 
					
					
						
						| 
							 | 
											"PresetsChildAction", | 
					
					
						
						| 
							 | 
										}, | 
					
					
						
						| 
							 | 
										'replace_matching_id', true, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Copy", | 
					
					
						
						| 
							 | 
										'ActionName', T(191389011800,  "Copy"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/copy.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-C", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpCopyModItem", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											elseif panel == host.idItemProperties then | 
					
					
						
						| 
							 | 
												host:Op("GedOpPropertyCopy", panel.context, panel:GetSelectedProperties(), panel.context) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
										'ActionContexts', { | 
					
					
						
						| 
							 | 
											"PresetsChildAction", | 
					
					
						
						| 
							 | 
											"ContentRootPanelAction", | 
					
					
						
						| 
							 | 
											"ContentChildPanelAction", | 
					
					
						
						| 
							 | 
											"PropAction", | 
					
					
						
						| 
							 | 
										}, | 
					
					
						
						| 
							 | 
										'replace_matching_id', true, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Paste", | 
					
					
						
						| 
							 | 
										'ActionName', T(749315791356,  "Paste"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/paste.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-V", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpPasteModItem", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											elseif panel:IsKindOf("GedPropPanel") then | 
					
					
						
						| 
							 | 
												host:Op("GedOpPropertyPaste", panel.context) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
										'ActionContexts', { | 
					
					
						
						| 
							 | 
											"PresetsChildAction", | 
					
					
						
						| 
							 | 
											"ContentRootPanelAction", | 
					
					
						
						| 
							 | 
											"ContentChildPanelAction", | 
					
					
						
						| 
							 | 
											"PropAction", | 
					
					
						
						| 
							 | 
										}, | 
					
					
						
						| 
							 | 
										'replace_matching_id', true, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Duplicate", | 
					
					
						
						| 
							 | 
										'ActionName', T(284844710474,  "Duplicate"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/duplicate.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionToolbarSplit', true, | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-D", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpDuplicateModItem", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
										'ActionContexts', { | 
					
					
						
						| 
							 | 
											"PresetsChildAction", | 
					
					
						
						| 
							 | 
											"ContentRootPanelAction", | 
					
					
						
						| 
							 | 
											"ContentChildPanelAction", | 
					
					
						
						| 
							 | 
										}, | 
					
					
						
						| 
							 | 
										'replace_matching_id', true, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionName', T(930594708322,  "-----"), | 
					
					
						
						| 
							 | 
										'ActionMenubar', "Edit", | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "MoveOutwards", | 
					
					
						
						| 
							 | 
										'ActionName', T(556803322410,  "Move Out"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/left.tga", | 
					
					
						
						| 
							 | 
										'ActionMenubar', "Edit", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Alt-Left", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpTreeMoveItemOutwards", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "MoveInwards", | 
					
					
						
						| 
							 | 
										'ActionName', T(384052770742,  "Move In"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/right.tga", | 
					
					
						
						| 
							 | 
										'ActionMenubar', "Edit", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Alt-Right", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpTreeMoveItemInwards", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "MoveUp", | 
					
					
						
						| 
							 | 
										'ActionName', T(459268168316,  "Move Up"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/up.tga", | 
					
					
						
						| 
							 | 
										'ActionMenubar', "Edit", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Alt-Up", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpTreeMoveItemUp", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "MoveDown", | 
					
					
						
						| 
							 | 
										'ActionName', T(203305089151,  "Move Down"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/down.tga", | 
					
					
						
						| 
							 | 
										'ActionMenubar', "Edit", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Alt-Down", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											local panel = host:GetLastFocusedPanel() | 
					
					
						
						| 
							 | 
											if panel == host.idItems then | 
					
					
						
						| 
							 | 
												host:Op("GedOpTreeMoveItemDown", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "DeleteItem", | 
					
					
						
						| 
							 | 
										'ActionName', T(931048354633,  "Delete Item"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/delete.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionToolbarSplit', true, | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Delete", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Op("GedOpDeleteModItem", "root", host.idItems:GetMultiSelection()) | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionName', T(298776341838,  "-----"), | 
					
					
						
						| 
							 | 
										'ActionMenubar', "Edit", | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Undo", | 
					
					
						
						| 
							 | 
										'ActionName', T(704182154993,  "Undo"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/undo.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-Z", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Undo() | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
										'ActionId', "Redo", | 
					
					
						
						| 
							 | 
										'ActionName', T(825249904824,  "Redo"), | 
					
					
						
						| 
							 | 
										'ActionIcon', "CommonAssets/UI/Ged/redo.tga", | 
					
					
						
						| 
							 | 
										'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
										'ActionToolbarSplit', true, | 
					
					
						
						| 
							 | 
										'ActionShortcut', "Ctrl-Y", | 
					
					
						
						| 
							 | 
										'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
											host:Redo() | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'comment', "in file menu", | 
					
					
						
						| 
							 | 
									'ActionName', T(649145838532,  "-----"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "File", | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'comment', "in file menu", | 
					
					
						
						| 
							 | 
									'ActionId', "BugReport", | 
					
					
						
						| 
							 | 
									'ActionName', T(972701350134,  "Report a bug"), | 
					
					
						
						| 
							 | 
									'ActionIcon', "CommonAssets/UI/Ged/warning_button.png", | 
					
					
						
						| 
							 | 
									'ActionMenubar', "File", | 
					
					
						
						| 
							 | 
									'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
									'ActionShortcut', "Ctrl-F1", | 
					
					
						
						| 
							 | 
									'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
										CreateRealTimeThread(GedCreateXBugReportDlg) | 
					
					
						
						| 
							 | 
									end, | 
					
					
						
						| 
							 | 
									'replace_matching_id', true, | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'comment', "in file menu", | 
					
					
						
						| 
							 | 
									'ActionId', "Help", | 
					
					
						
						| 
							 | 
									'ActionName', T(124350738980,  "Help"), | 
					
					
						
						| 
							 | 
									'ActionIcon', "CommonAssets/UI/Ged/help.tga", | 
					
					
						
						| 
							 | 
									'ActionMenubar', "File", | 
					
					
						
						| 
							 | 
									'ActionToolbar', "main", | 
					
					
						
						| 
							 | 
									'ActionShortcut', "Ctrl-H", | 
					
					
						
						| 
							 | 
									'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
										host:Op("GedOpModItemHelp", "root", host.idItems:GetSelection()) | 
					
					
						
						| 
							 | 
									end, | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'comment', "in file menu", | 
					
					
						
						| 
							 | 
									'ActionName', T(650063819060,  "-----"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "File", | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'comment', "in file menu", | 
					
					
						
						| 
							 | 
									'ActionId', "Exit", | 
					
					
						
						| 
							 | 
									'ActionName', T(874097506037,  "Exit"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "File", | 
					
					
						
						| 
							 | 
									'OnAction', function (self, host, source, ...) | 
					
					
						
						| 
							 | 
										host:Exit() | 
					
					
						
						| 
							 | 
									end, | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'ActionId', "Cheats", | 
					
					
						
						| 
							 | 
									'ActionName', T(501723542931,  "Cheats"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "main", | 
					
					
						
						| 
							 | 
									'OnActionEffect', "popup", | 
					
					
						
						| 
							 | 
								}, { | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateTemplate', { | 
					
					
						
						| 
							 | 
										'__template', "ModEditorCheats", | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateAction', { | 
					
					
						
						| 
							 | 
									'ActionId', "NewItem", | 
					
					
						
						| 
							 | 
									'ActionName', T(727038768556,  "New"), | 
					
					
						
						| 
							 | 
									'ActionMenubar', "main", | 
					
					
						
						| 
							 | 
									'OnActionEffect', "popup", | 
					
					
						
						| 
							 | 
									'ActionContexts', { | 
					
					
						
						| 
							 | 
										"ItemModPanelAction", | 
					
					
						
						| 
							 | 
									}, | 
					
					
						
						| 
							 | 
								}, { | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateCode', { | 
					
					
						
						| 
							 | 
										'run', function (self, parent, context) | 
					
					
						
						| 
							 | 
											local submenus = { } | 
					
					
						
						| 
							 | 
											local standalone_entries = {} | 
					
					
						
						| 
							 | 
											for i, item in ipairs(context.mod_items) do | 
					
					
						
						| 
							 | 
												local submenu = item.EditorSubmenu | 
					
					
						
						| 
							 | 
												if not submenu or submenu == "" then | 
					
					
						
						| 
							 | 
													table.insert(standalone_entries, item) | 
					
					
						
						| 
							 | 
													goto continue | 
					
					
						
						| 
							 | 
												end | 
					
					
						
						| 
							 | 
												if not submenus[submenu] then | 
					
					
						
						| 
							 | 
													local items = { item } | 
					
					
						
						| 
							 | 
													submenus[submenu] = items | 
					
					
						
						| 
							 | 
													table.insert(submenus, submenu) | 
					
					
						
						| 
							 | 
												else | 
					
					
						
						| 
							 | 
													table.insert(submenus[submenu], item) | 
					
					
						
						| 
							 | 
												end | 
					
					
						
						| 
							 | 
												::continue:: | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
											table.sort(submenus) | 
					
					
						
						| 
							 | 
											table.sort(standalone_entries, function (a, b) return a.Class:lower() < b.Class:lower() end) | 
					
					
						
						| 
							 | 
											table.remove_entry(submenus, "Other") | 
					
					
						
						| 
							 | 
											table.insert(submenus, "Other") | 
					
					
						
						| 
							 | 
											for i, item in ipairs(standalone_entries) do | 
					
					
						
						| 
							 | 
												local action = { | 
					
					
						
						| 
							 | 
													ActionId = "new" .. item.Class, | 
					
					
						
						| 
							 | 
													ActionName = Untranslated(item.EditorName or item.Class), | 
					
					
						
						| 
							 | 
													ActionIcon = item.EditorIcon, | 
					
					
						
						| 
							 | 
													ActionShortcut = item.EditorShortcut, | 
					
					
						
						| 
							 | 
													ActionMenubar = "NewItem", | 
					
					
						
						| 
							 | 
													OnAction = function(self, host, source) | 
					
					
						
						| 
							 | 
														host:Op("GedOpNewModItem", "root", host.idItems:GetSelection(), item.Class) | 
					
					
						
						| 
							 | 
													end, | 
					
					
						
						| 
							 | 
												} | 
					
					
						
						| 
							 | 
												XAction:new(action, parent, context, true) | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
											for i, submenu in ipairs(submenus) do | 
					
					
						
						| 
							 | 
												local items = submenus[submenu] | 
					
					
						
						| 
							 | 
												local submenu_id = "new" .. submenu .. "Menu" | 
					
					
						
						| 
							 | 
												local submenu_action = { | 
					
					
						
						| 
							 | 
													ActionId = submenu_id, | 
					
					
						
						| 
							 | 
													ActionName = Untranslated(submenu) .. "...", | 
					
					
						
						| 
							 | 
													OnActionEffect = "popup", | 
					
					
						
						| 
							 | 
													ActionMenubar = "NewItem", | 
					
					
						
						| 
							 | 
												} | 
					
					
						
						| 
							 | 
												XAction:new(submenu_action, parent, context, true) | 
					
					
						
						| 
							 | 
												 | 
					
					
						
						| 
							 | 
												for i, item in ipairs(items) do | 
					
					
						
						| 
							 | 
													local action = { | 
					
					
						
						| 
							 | 
														ActionId = "new" .. item.Class, | 
					
					
						
						| 
							 | 
														ActionName = Untranslated(item.EditorName or item.Class), | 
					
					
						
						| 
							 | 
														ActionIcon = item.EditorIcon, | 
					
					
						
						| 
							 | 
														ActionShortcut = item.EditorShortcut, | 
					
					
						
						| 
							 | 
														ActionMenubar = submenu_id, | 
					
					
						
						| 
							 | 
														OnAction = function(self, host, source) | 
					
					
						
						| 
							 | 
															host:Op("GedOpNewModItem", "root", host.idItems:GetSelection(), item.Class) | 
					
					
						
						| 
							 | 
														end, | 
					
					
						
						| 
							 | 
													} | 
					
					
						
						| 
							 | 
													XAction:new(action, parent, context, true) | 
					
					
						
						| 
							 | 
												end | 
					
					
						
						| 
							 | 
											end | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateWindow', nil, { | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
										'__context', function (parent, context) return "root" end, | 
					
					
						
						| 
							 | 
										'__class', "GedTreePanel", | 
					
					
						
						| 
							 | 
										'Id', "idItems", | 
					
					
						
						| 
							 | 
										'Title', "Mod Items", | 
					
					
						
						| 
							 | 
										'ActionContext', "ItemModPanelAction", | 
					
					
						
						| 
							 | 
										'Format', "<EditorView>", | 
					
					
						
						| 
							 | 
										'SelectionBind', "SelectedItem, SelectedObject", | 
					
					
						
						| 
							 | 
										'OnSelectionChanged', function (self, selection)  end, | 
					
					
						
						| 
							 | 
										'OnCtrlClick', function (self, selection)  end, | 
					
					
						
						| 
							 | 
										'OnAltClick', function (self, selection) | 
					
					
						
						| 
							 | 
											local gedApp = GetDialog(self) | 
					
					
						
						| 
							 | 
											if not gedApp.mod_folder_supported then return end | 
					
					
						
						| 
							 | 
											gedApp:Op("GedOpRelocateModItemToFolder", "root", selection, self:GetSelection()) | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
										'OnDoubleClick', function (self, selection)  end, | 
					
					
						
						| 
							 | 
										'DragAndDrop', true, | 
					
					
						
						| 
							 | 
										'ChildActionContext', "ItemModPanelAction", | 
					
					
						
						| 
							 | 
									}, { | 
					
					
						
						| 
							 | 
										PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
											'__condition', function (parent, context) return true end, | 
					
					
						
						| 
							 | 
											'Id', "idBottomButtons", | 
					
					
						
						| 
							 | 
											'ZOrder', 2, | 
					
					
						
						| 
							 | 
											'Margins', box(7, 7, 7, 7), | 
					
					
						
						| 
							 | 
											'HAlign', "right", | 
					
					
						
						| 
							 | 
											'VAlign', "bottom", | 
					
					
						
						| 
							 | 
											'LayoutMethod', "HList", | 
					
					
						
						| 
							 | 
											'LayoutHSpacing', 7, | 
					
					
						
						| 
							 | 
										}, { | 
					
					
						
						| 
							 | 
											PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
												'__class', "XButton", | 
					
					
						
						| 
							 | 
												'RolloverTemplate', "GedToolbarRollover", | 
					
					
						
						| 
							 | 
												'RolloverAnchor', "top", | 
					
					
						
						| 
							 | 
												'RolloverText', T(149723581950,  "Create new Mod Item"), | 
					
					
						
						| 
							 | 
												'Id', "idNewModItem", | 
					
					
						
						| 
							 | 
												'ZOrder', 2, | 
					
					
						
						| 
							 | 
												'HAlign', "right", | 
					
					
						
						| 
							 | 
												'VAlign', "center", | 
					
					
						
						| 
							 | 
												'MinWidth', 45, | 
					
					
						
						| 
							 | 
												'MinHeight', 45, | 
					
					
						
						| 
							 | 
												'Background', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
												'FocusedBackground', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
												'RolloverBackground', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
												'PressedBackground', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
											}, { | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateFunc', { | 
					
					
						
						| 
							 | 
													'name', "OnSetRollover(self, rollover)", | 
					
					
						
						| 
							 | 
													'func', function (self, rollover) | 
					
					
						
						| 
							 | 
														XButton.OnSetRollover(self, rollover) | 
					
					
						
						| 
							 | 
														if rollover then | 
					
					
						
						| 
							 | 
															self[1]:SetBackground(RGB(128, 128, 128)) | 
					
					
						
						| 
							 | 
														else | 
					
					
						
						| 
							 | 
															self[1]:SetBackground(RGB(105, 105, 105)) | 
					
					
						
						| 
							 | 
														end | 
					
					
						
						| 
							 | 
													end, | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateFunc', { | 
					
					
						
						| 
							 | 
													'name', "OnPress(self)", | 
					
					
						
						| 
							 | 
													'func', function (self) | 
					
					
						
						| 
							 | 
														local items = {} | 
					
					
						
						| 
							 | 
														local mod_items = GetDialog(self).mod_items | 
					
					
						
						| 
							 | 
														for _, entry in ipairs(mod_items) do | 
					
					
						
						| 
							 | 
															table.insert(items, { | 
					
					
						
						| 
							 | 
																category = entry.EditorSubmenu or "", | 
					
					
						
						| 
							 | 
																text = entry.EditorName, | 
					
					
						
						| 
							 | 
																value = entry.Class, | 
					
					
						
						| 
							 | 
																documentation = entry.Documentation, | 
					
					
						
						| 
							 | 
															}) | 
					
					
						
						| 
							 | 
														end | 
					
					
						
						| 
							 | 
														 | 
					
					
						
						| 
							 | 
														CreateRealTimeThread(function() | 
					
					
						
						| 
							 | 
															GedOpenCreateItemPopup(g_GedApp.idItems, "New Mod Item", items, self, function(class) | 
					
					
						
						| 
							 | 
																if self.window_state == "destroying" then return end | 
					
					
						
						| 
							 | 
																g_GedApp:Op("GedOpNewModItem", "root", g_GedApp.idItems:GetSelection(), class) | 
					
					
						
						| 
							 | 
															end) | 
					
					
						
						| 
							 | 
														end) | 
					
					
						
						| 
							 | 
													end, | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
													'__class', "XFrame", | 
					
					
						
						| 
							 | 
													'Background', RGBA(105, 105, 105, 255), | 
					
					
						
						| 
							 | 
													'Image', "CommonAssets/UI/round-frame-20", | 
					
					
						
						| 
							 | 
													'FrameBox', box(9, 9, 9, 9), | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
													'__class', "XImage", | 
					
					
						
						| 
							 | 
													'Image', "CommonAssets/UI/Ged/Plus", | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
											PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
												'__condition', function (parent, context) return GetDialog(parent).mod_folder_supported end, | 
					
					
						
						| 
							 | 
												'__class', "XButton", | 
					
					
						
						| 
							 | 
												'RolloverTemplate', "GedToolbarRollover", | 
					
					
						
						| 
							 | 
												'RolloverAnchor', "top", | 
					
					
						
						| 
							 | 
												'RolloverText', T(976724333601,  "Add selected items to New Folder"), | 
					
					
						
						| 
							 | 
												'Id', "idNewModFolder", | 
					
					
						
						| 
							 | 
												'ZOrder', 2, | 
					
					
						
						| 
							 | 
												'HAlign', "right", | 
					
					
						
						| 
							 | 
												'VAlign', "center", | 
					
					
						
						| 
							 | 
												'MinWidth', 45, | 
					
					
						
						| 
							 | 
												'MinHeight', 45, | 
					
					
						
						| 
							 | 
												'Background', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
												'FocusedBackground', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
												'RolloverBackground', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
												'PressedBackground', RGBA(255, 255, 255, 0), | 
					
					
						
						| 
							 | 
											}, { | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateFunc', { | 
					
					
						
						| 
							 | 
													'name', "OnSetRollover(self, rollover)", | 
					
					
						
						| 
							 | 
													'func', function (self, rollover) | 
					
					
						
						| 
							 | 
														XButton.OnSetRollover(self, rollover) | 
					
					
						
						| 
							 | 
														if rollover then | 
					
					
						
						| 
							 | 
															self[1]:SetBackground(RGB(128, 128, 128)) | 
					
					
						
						| 
							 | 
														else | 
					
					
						
						| 
							 | 
															self[1]:SetBackground(RGB(105, 105, 105)) | 
					
					
						
						| 
							 | 
														end | 
					
					
						
						| 
							 | 
													end, | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateFunc', { | 
					
					
						
						| 
							 | 
													'name', "OnPress(self)", | 
					
					
						
						| 
							 | 
													'func', function (self) | 
					
					
						
						| 
							 | 
														CreateRealTimeThread(function() | 
					
					
						
						| 
							 | 
															local panel = g_GedApp.idItems | 
					
					
						
						| 
							 | 
															g_GedApp:Op("GedOpAddModItemsToFolder", panel.context, panel:GetMultiSelection()) | 
					
					
						
						| 
							 | 
														end) | 
					
					
						
						| 
							 | 
													end, | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
													'__class', "XFrame", | 
					
					
						
						| 
							 | 
													'Background', RGBA(105, 105, 105, 255), | 
					
					
						
						| 
							 | 
													'Image', "CommonAssets/UI/round-frame-20", | 
					
					
						
						| 
							 | 
													'FrameBox', box(9, 9, 9, 9), | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
													'__class', "XImage", | 
					
					
						
						| 
							 | 
													'Image', "CommonAssets/UI/Ged/NewFolder", | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
											}), | 
					
					
						
						| 
							 | 
										PlaceObj('XTemplateTemplate', { | 
					
					
						
						| 
							 | 
											'__template', "GedStatusBar", | 
					
					
						
						| 
							 | 
											'Background', RGBA(255, 0, 0, 255), | 
					
					
						
						| 
							 | 
											'FormatFunc', "GedModStatusText", | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
									'__context', function (parent, context) return "SelectedItem" end, | 
					
					
						
						| 
							 | 
									'__class', "GedBindView", | 
					
					
						
						| 
							 | 
									'BindView', "SubItems", | 
					
					
						
						| 
							 | 
									'BindRoot', "root", | 
					
					
						
						| 
							 | 
									'BindFunc', "GedDynamicItemsMenu", | 
					
					
						
						| 
							 | 
									'ControlId', "idItems", | 
					
					
						
						| 
							 | 
									'GetBindParams', function (self, control) return "ModItem", control:GetSelection() end, | 
					
					
						
						| 
							 | 
									'OnViewChanged', function (self, value, control) | 
					
					
						
						| 
							 | 
										RebuildSubItemsActions(control, value, "New Element", "main", "main") | 
					
					
						
						| 
							 | 
									end, | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
									'__class', "XPanelSizer", | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
								PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
									'__context', function (parent, context) return "SelectedObject" end, | 
					
					
						
						| 
							 | 
									'__class', "GedPropPanel", | 
					
					
						
						| 
							 | 
									'Id', "idItemProperties", | 
					
					
						
						| 
							 | 
									'MinWidth', 300, | 
					
					
						
						| 
							 | 
									'Title', "Item Properties", | 
					
					
						
						| 
							 | 
									'HideFirstCategory', true, | 
					
					
						
						| 
							 | 
									'RootObjectBindName', "SelectedItem", | 
					
					
						
						| 
							 | 
								}, { | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
										'__context', function (parent, context) return "SelectedItem" end, | 
					
					
						
						| 
							 | 
										'__class', "GedBindView", | 
					
					
						
						| 
							 | 
										'BindView', "PresetEditor", | 
					
					
						
						| 
							 | 
										'BindRoot', "SelectedItem", | 
					
					
						
						| 
							 | 
										'BindFunc', "GedGetModItemDockedActions", | 
					
					
						
						| 
							 | 
										'ControlId', "idPanelDockedButtons", | 
					
					
						
						| 
							 | 
										'OnViewChanged', function (self, value, control) | 
					
					
						
						| 
							 | 
											if not control then return end | 
					
					
						
						| 
							 | 
											local visible = not not next(value) | 
					
					
						
						| 
							 | 
											control:SetVisible(visible) | 
					
					
						
						| 
							 | 
											local list = self:ResolveId("idList") | 
					
					
						
						| 
							 | 
											list:SetContext(value, true) | 
					
					
						
						| 
							 | 
										end, | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
									PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
										'Id', "idPanelDockedButtons", | 
					
					
						
						| 
							 | 
										'ZOrder', 2, | 
					
					
						
						| 
							 | 
										'Margins', box(0, 3, 0, 0), | 
					
					
						
						| 
							 | 
										'Dock', "bottom", | 
					
					
						
						| 
							 | 
										'FoldWhenHidden', true, | 
					
					
						
						| 
							 | 
									}, { | 
					
					
						
						| 
							 | 
										PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
											'__context', function (parent, context) | 
					
					
						
						| 
							 | 
												return context | 
					
					
						
						| 
							 | 
											end, | 
					
					
						
						| 
							 | 
											'__class', "XContentTemplate", | 
					
					
						
						| 
							 | 
											'Id', "idList", | 
					
					
						
						| 
							 | 
											'ZOrder', 2, | 
					
					
						
						| 
							 | 
											'Padding', box(15, 15, 15, 15), | 
					
					
						
						| 
							 | 
											'HAlign', "center", | 
					
					
						
						| 
							 | 
											'VAlign', "center", | 
					
					
						
						| 
							 | 
											'LayoutMethod', "HWrap", | 
					
					
						
						| 
							 | 
											'LayoutHSpacing', 15, | 
					
					
						
						| 
							 | 
											'LayoutVSpacing', 15, | 
					
					
						
						| 
							 | 
											'FoldWhenHidden', true, | 
					
					
						
						| 
							 | 
											'OnContextUpdate', function (self, context, ...) | 
					
					
						
						| 
							 | 
												if self.RespawnOnContext then | 
					
					
						
						| 
							 | 
													if self.window_state == "open" then | 
					
					
						
						| 
							 | 
														self:RespawnContent() | 
					
					
						
						| 
							 | 
													end | 
					
					
						
						| 
							 | 
												else | 
					
					
						
						| 
							 | 
													local respawn_value = self:RespawnExpression(context) | 
					
					
						
						| 
							 | 
													if rawget(self, "respawn_value") ~= respawn_value then | 
					
					
						
						| 
							 | 
														self.respawn_value = respawn_value | 
					
					
						
						| 
							 | 
														if self.window_state == "open" then | 
					
					
						
						| 
							 | 
															self:RespawnContent() | 
					
					
						
						| 
							 | 
														end | 
					
					
						
						| 
							 | 
													end | 
					
					
						
						| 
							 | 
												end | 
					
					
						
						| 
							 | 
											end, | 
					
					
						
						| 
							 | 
										}, { | 
					
					
						
						| 
							 | 
											PlaceObj('XTemplateForEach', { | 
					
					
						
						| 
							 | 
												'array', function (parent, context) | 
					
					
						
						| 
							 | 
													if type(context) ~= "table" then return context end | 
					
					
						
						| 
							 | 
													local result = {} | 
					
					
						
						| 
							 | 
													for id, data in pairs(context) do | 
					
					
						
						| 
							 | 
														table.insert(result, {  | 
					
					
						
						| 
							 | 
															id = id, name = data.name,  | 
					
					
						
						| 
							 | 
															rolloverText = data.rolloverText,  | 
					
					
						
						| 
							 | 
															op = data.op  | 
					
					
						
						| 
							 | 
														}) | 
					
					
						
						| 
							 | 
													end | 
					
					
						
						| 
							 | 
													return result | 
					
					
						
						| 
							 | 
												end, | 
					
					
						
						| 
							 | 
												'map', function (parent, context, array, i) | 
					
					
						
						| 
							 | 
													return array and array[i] | 
					
					
						
						| 
							 | 
												end, | 
					
					
						
						| 
							 | 
												'__context', function (parent, context, item, i, n) | 
					
					
						
						| 
							 | 
													return context | 
					
					
						
						| 
							 | 
												end, | 
					
					
						
						| 
							 | 
												'run_before', function (parent, context, item, i, n, last) | 
					
					
						
						| 
							 | 
													 | 
					
					
						
						| 
							 | 
												end, | 
					
					
						
						| 
							 | 
												'run_after', function (child, context, item, i, n, last) | 
					
					
						
						| 
							 | 
													child:SetText(item.name) | 
					
					
						
						| 
							 | 
													child:SetRolloverText(item.rolloverText) | 
					
					
						
						| 
							 | 
													child:SetOnPress(function(child) | 
					
					
						
						| 
							 | 
														local app = GetParentOfKind(child, "GedApp") | 
					
					
						
						| 
							 | 
														local panel = app:ResolveId("idItems") | 
					
					
						
						| 
							 | 
														if panel then | 
					
					
						
						| 
							 | 
															app:Op(item.op, "SelectedItem") | 
					
					
						
						| 
							 | 
														end | 
					
					
						
						| 
							 | 
													end) | 
					
					
						
						| 
							 | 
												end, | 
					
					
						
						| 
							 | 
											}, { | 
					
					
						
						| 
							 | 
												PlaceObj('XTemplateWindow', { | 
					
					
						
						| 
							 | 
													'__class', "XTextButton", | 
					
					
						
						| 
							 | 
													'RolloverTemplate', "GedToolbarRollover", | 
					
					
						
						| 
							 | 
													'RolloverAnchor', "top", | 
					
					
						
						| 
							 | 
													'Id', "idOpenInPresetEditorButton", | 
					
					
						
						| 
							 | 
													'BorderWidth', 2, | 
					
					
						
						| 
							 | 
													'Padding', box(2, 2, 2, 2), | 
					
					
						
						| 
							 | 
													'HAlign', "center", | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
												}), | 
					
					
						
						| 
							 | 
											}), | 
					
					
						
						| 
							 | 
										}), | 
					
					
						
						| 
							 | 
									}), | 
					
					
						
						| 
							 | 
								}), | 
					
					
						
						| 
							 | 
						}) | 
					
					
						
						| 
							 | 
						
 | 
					
					
						
						| 
							 | 
						
 |