BuildOutput.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  3. // LICENSE: Atomic Game Engine Editor and Tools EULA
  4. // Please see LICENSE_ATOMIC_EDITOR_AND_TOOLS.md in repository root for
  5. // license information: https://github.com/AtomicGameEngine/AtomicGameEngine
  6. //
  7. import EditorUI = require("../../EditorUI");
  8. import ModalWindow = require("../ModalWindow");
  9. import BuildComplete = require("./BuildComplete");
  10. class BuildOutput extends ModalWindow {
  11. constructor(buildBase: ToolCore.BuildBase) {
  12. super();
  13. this.buildBase = buildBase;
  14. this.init("Build Output", "AtomicEditor/editor/ui/programoutput.tb.txt");
  15. this.outputField = <Atomic.UIEditField>this.getWidget("output");
  16. this.resizeToFitContent();
  17. this.center();
  18. this.subscribeToEvent(buildBase, "BuildOutput", (ev: ToolCore.BuildOutputEvent) => {
  19. this.textOutput += ev.text;
  20. this.outputField.text = this.textOutput;
  21. this.outputField.scrollTo(0, 0xffffff);
  22. });
  23. this.subscribeToEvent("BuildComplete", (ev: ToolCore.BuildCompleteEvent) => {
  24. new BuildComplete(this, ev);
  25. });
  26. }
  27. handleWidgetEvent(ev: Atomic.UIWidgetEvent): boolean {
  28. if (ev.type == Atomic.UI_EVENT_TYPE_CLICK) {
  29. if (ev.target.id == "cancel") {
  30. this.hide();
  31. return true;
  32. }
  33. if (ev.target.id == "ok") {
  34. this.hide();
  35. return true;
  36. }
  37. }
  38. return false;
  39. }
  40. textOutput: string;
  41. buildBase: ToolCore.BuildBase;
  42. outputField: Atomic.UIEditField;
  43. }
  44. export = BuildOutput;