scriptconsoleaddposition.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. class ScriptConsoleAddLocation extends UIScriptedMenu
  2. {
  3. void ScriptConsoleAddLocation()
  4. {
  5. }
  6. void ~ScriptConsoleAddLocation()
  7. {
  8. }
  9. void SetPosition(vector pos)
  10. {
  11. m_EditboxPos.SetText(pos.ToString());
  12. }
  13. override Widget Init()
  14. {
  15. m_ConfigDebugProfile = PluginConfigDebugProfile.Cast( GetPlugin(PluginConfigDebugProfile) );
  16. layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/script_console/script_console_add_location_dialogue.layout");
  17. m_EditboxName = EditBoxWidget.Cast( layoutRoot.FindAnyWidget("LocationName") );
  18. m_EditboxPos = EditBoxWidget.Cast( layoutRoot.FindAnyWidget("Position") );
  19. m_Label = TextWidget.Cast( layoutRoot.FindAnyWidget("WindowLabel") );
  20. m_ClearButton = ButtonWidget.Cast( layoutRoot.FindAnyWidget("ButtonClear") );
  21. m_Label.SetText("ADD NEW LOCATION");
  22. return layoutRoot;
  23. }
  24. override bool OnClick(Widget w, int x, int y, int button)
  25. {
  26. super.OnClick(w, x, y, button);
  27. if (w.GetUserID() == IDC_OK)
  28. {
  29. string name = m_EditboxName.GetText();
  30. ScriptConsole console = ScriptConsole.Cast(GetGame().GetUIManager().FindMenu(MENU_SCRIPTCONSOLE));
  31. ScriptConsoleGeneralTab tab = ScriptConsoleGeneralTab.Cast(console.GetTabHandler(ScriptConsoleGeneralTab));
  32. if (tab)
  33. {
  34. if (!tab.IsLocationNameAvailable(name) || name == "" || m_EditboxPos.GetText() == "")
  35. return false;
  36. m_ConfigDebugProfile.CustomLocationsAdd(name, m_EditboxPos.GetText().BeautifiedToVector());
  37. Close();
  38. tab.RefreshLocations();
  39. return true;
  40. }
  41. }
  42. else if (w.GetUserID() == IDC_CANCEL)
  43. {
  44. Close();
  45. return true;
  46. }
  47. else if (w == m_ClearButton)
  48. {
  49. m_EditboxPos.SetText("");
  50. return true;
  51. }
  52. return false;
  53. }
  54. PluginConfigDebugProfile m_ConfigDebugProfile;
  55. EditBoxWidget m_EditboxName;
  56. EditBoxWidget m_EditboxPos;
  57. TextWidget m_Label;
  58. TextWidget m_Message;
  59. ButtonWidget m_ClearButton;
  60. }