UIConsoleWidget.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  2. // Please see LICENSE.md in repository root for license information
  3. // https://github.com/AtomicGameEngine/AtomicEditor
  4. #include "AtomicEditor.h"
  5. #include <TurboBadger/tb_layout.h>
  6. #include <Atomic/Core/Context.h>
  7. #include <Atomic/IO/Log.h>
  8. #include <Atomic/UI/TBUI.h>
  9. #include "UIListView.h"
  10. #include "UIConsoleWidget.h"
  11. #include "UIMainFrame.h"
  12. #include "UIResourceFrame.h"
  13. #include <Atomic/Javascript/JSEvents.h>
  14. #include <Atomic/IO/FileSystem.h>
  15. #include "../AEJavascript.h"
  16. #include "../AEEvents.h"
  17. namespace AtomicEditor
  18. {
  19. ConsoleWidget::ConsoleWidget(Context* context) :
  20. AEWidget(context),
  21. consolelayout_(0)
  22. {
  23. context_->RegisterSubsystem(this);
  24. TBUI* tbui = GetSubsystem<TBUI>();
  25. tbui->LoadResourceFile(delegate_, "AtomicEditor/editor/ui/consolewidget.tb.txt");
  26. consolelayout_ = delegate_->GetWidgetByIDAndType<TBLayout>(TBIDC("consolelayout"));
  27. assert(consolelayout_);
  28. consoleList_ = new ListView(context_, "consolelist");
  29. TBWidgetDelegate* consoleListWD = consoleList_->GetWidgetDelegate();
  30. consoleListWD->SetGravity(WIDGET_GRAVITY_ALL);
  31. consolelayout_->AddChild(consoleListWD);
  32. SubscribeToEvent(E_JSPRINT, HANDLER(ConsoleWidget, HandleMessage));
  33. SubscribeToEvent(E_CONSOLEMESSAGE, HANDLER(ConsoleWidget, HandleMessage));
  34. SubscribeToEvent(E_CONSOLEERRORMESSAGE, HANDLER(ConsoleWidget, HandleMessage));
  35. }
  36. ConsoleWidget::~ConsoleWidget()
  37. {
  38. }
  39. void ConsoleWidget::HandleMessage(StringHash eventType, VariantMap& eventData)
  40. {
  41. if (eventType == E_CONSOLEMESSAGE)
  42. {
  43. using namespace ConsoleMessage;
  44. const String& message = eventData[P_TEXT].GetString();
  45. }
  46. else if (eventType == E_JSPRINT)
  47. {
  48. using namespace JSPrint;
  49. const String& message = eventData[P_TEXT].GetString();
  50. consoleList_->AddItem(message.CString(), NULL, TBID(consoleList_->GetNumItems()));
  51. }
  52. else if (eventType == E_CONSOLEERRORMESSAGE)
  53. {
  54. using namespace ConsoleErrorMessage;
  55. const String& message = eventData[P_TEXT].GetString();
  56. consoleList_->AddItem(message.CString(), NULL, TBID(consoleList_->GetNumItems()));
  57. }
  58. }
  59. bool ConsoleWidget::OnEvent(const TBWidgetEvent &ev)
  60. {
  61. return false;
  62. }
  63. }