class ScriptConsoleAddLocation extends UIScriptedMenu { void ScriptConsoleAddLocation() { } void ~ScriptConsoleAddLocation() { } void SetPosition(vector pos) { m_EditboxPos.SetText(pos.ToString()); } override Widget Init() { m_ConfigDebugProfile = PluginConfigDebugProfile.Cast( GetPlugin(PluginConfigDebugProfile) ); layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/script_console/script_console_add_location_dialogue.layout"); m_EditboxName = EditBoxWidget.Cast( layoutRoot.FindAnyWidget("LocationName") ); m_EditboxPos = EditBoxWidget.Cast( layoutRoot.FindAnyWidget("Position") ); m_Label = TextWidget.Cast( layoutRoot.FindAnyWidget("WindowLabel") ); m_ClearButton = ButtonWidget.Cast( layoutRoot.FindAnyWidget("ButtonClear") ); m_Label.SetText("ADD NEW LOCATION"); return layoutRoot; } override bool OnClick(Widget w, int x, int y, int button) { super.OnClick(w, x, y, button); if (w.GetUserID() == IDC_OK) { string name = m_EditboxName.GetText(); ScriptConsole console = ScriptConsole.Cast(GetGame().GetUIManager().FindMenu(MENU_SCRIPTCONSOLE)); ScriptConsoleGeneralTab tab = ScriptConsoleGeneralTab.Cast(console.GetTabHandler(ScriptConsoleGeneralTab)); if (tab) { if (!tab.IsLocationNameAvailable(name) || name == "" || m_EditboxPos.GetText() == "") return false; m_ConfigDebugProfile.CustomLocationsAdd(name, m_EditboxPos.GetText().BeautifiedToVector()); Close(); tab.RefreshLocations(); return true; } } else if (w.GetUserID() == IDC_CANCEL) { Close(); return true; } else if (w == m_ClearButton) { m_EditboxPos.SetText(""); return true; } return false; } PluginConfigDebugProfile m_ConfigDebugProfile; EditBoxWidget m_EditboxName; EditBoxWidget m_EditboxPos; TextWidget m_Label; TextWidget m_Message; ButtonWidget m_ClearButton; }