scriptconsoleuniversalinfodialog.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. class ScriptConsoleUniversalInfoDialog extends UIScriptedMenu
  2. {
  3. private const int EDITBOX_TEXT_SIZE = 16;
  4. private TextWidget m_Label;
  5. private ScrollWidget m_ContentScroll;
  6. private MultilineEditBoxWidget m_Content;
  7. private ButtonWidget m_OKButton;
  8. void ScriptConsoleUniversalInfoDialog();
  9. void ~ScriptConsoleUniversalInfoDialog();
  10. override Widget Init()
  11. {
  12. layoutRoot = GetGame().GetWorkspace().CreateWidgets("gui/layouts/script_console/script_console_universal_info_dialog.layout");
  13. m_Label = TextWidget.Cast(layoutRoot.FindAnyWidget("Label"));
  14. m_ContentScroll = ScrollWidget.Cast(layoutRoot.FindAnyWidget("ContentScroll"));
  15. m_ContentScroll.VScrollToPos(0);
  16. m_Content = MultilineEditBoxWidget.Cast(layoutRoot.FindAnyWidget("Content"));
  17. m_OKButton = ButtonWidget.Cast(layoutRoot.FindAnyWidget("MessageText"));
  18. return layoutRoot;
  19. }
  20. override bool OnClick(Widget w, int x, int y, int button)
  21. {
  22. super.OnClick(w, x, y, button);
  23. if (w.GetUserID() == IDC_OK)
  24. {
  25. UIScriptedMenu consoleMenu = GetGame().GetUIManager().FindMenu(MENU_SCRIPTCONSOLE);
  26. if (consoleMenu != null)
  27. {
  28. ScriptConsole scriptedConsole = ScriptConsole.Cast(consoleMenu);
  29. ScriptConsoleItemsTab tab = ScriptConsoleItemsTab.Cast(scriptedConsole.GetTabHandler(ScriptConsoleItemsTab));
  30. if (tab)
  31. {
  32. Close();
  33. return true;
  34. }
  35. }
  36. }
  37. return false;
  38. }
  39. void SetLabel(string label)
  40. {
  41. m_Label.SetText(label);
  42. }
  43. void SetContent(string content)
  44. {
  45. m_Content.SetText(content);
  46. m_Content.Update();
  47. float contentSizeX, contentSizeY = 0;
  48. m_Content.GetSize(contentSizeX, contentSizeY);
  49. m_Content.SetSize(contentSizeX, EDITBOX_TEXT_SIZE * m_Content.GetLinesCount());
  50. float y_c = m_ContentScroll.GetContentHeight();
  51. float x, y;
  52. m_Content.GetScreenSize(x, y);
  53. if (y > y_c)
  54. {
  55. m_ContentScroll.SetAlpha(1);
  56. }
  57. }
  58. }