UIMainFrame.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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/AtomicGameEngine
  4. #pragma once
  5. #include "AEWidget.h"
  6. #include "UIMenubar.h"
  7. #include <TurboBadger/tb_menu_window.h>
  8. using namespace Atomic;
  9. namespace tb
  10. {
  11. class TBEditField;
  12. class TBLayout;
  13. class TBMenuWindow;
  14. }
  15. namespace AtomicEditor
  16. {
  17. class ProjectFrame;
  18. class HierarchyFrame;
  19. class InspectorFrame;
  20. class ResourceFrame;
  21. class FindTextWidget;
  22. class MainToolbar;
  23. class PlayerWidget;
  24. class WelcomeFrame;
  25. class MessageModal;
  26. class UIModalOps;
  27. class MainFrame : public AEWidget
  28. {
  29. OBJECT(MainFrame);
  30. MenubarItemSource menuAtomicEditorSource;
  31. MenubarItemSource menuFileSource;
  32. MenubarItemSource menuEditSource;
  33. MenubarItemSource menuBuildSource;
  34. MenubarItemSource menuHelpSource;
  35. MenubarItemSource menuDeveloperSource;
  36. MenubarItemSource menuToolsSource;
  37. public:
  38. /// Construct.
  39. MainFrame(Context* context);
  40. /// Destruct.
  41. virtual ~MainFrame();
  42. bool OnEvent(const TBWidgetEvent &ev);
  43. ProjectFrame* GetProjectFrame();
  44. HierarchyFrame* GetHierarchyFrame();
  45. InspectorFrame* GetInspectorFrame();
  46. ResourceFrame* GetResourceFrame();
  47. WelcomeFrame* GetWelcomeFrame();
  48. FindTextWidget* GetFindTextWidget();
  49. MainToolbar* GetMainToolbar();
  50. MessageModal* GetMessageModal();
  51. UIModalOps* GetUIModalOps();
  52. // content views
  53. void ShowResourceFrame(bool show = true);
  54. void ShowWelcomeFrame(bool show = true);
  55. bool ResourceFrameVisible();
  56. bool WelcomeFrameVisible();
  57. bool InspectorFrameVisible();
  58. void ShowInspectorFrame(bool show);
  59. // reveals the current project folder in finder/explorer
  60. void RevealInFinder();
  61. PlayerWidget* GetPlayerWidget();
  62. bool UpdateJavascriptErrors();
  63. bool IsProjectLoaded();
  64. private:
  65. bool HandleMenubarEvent(const TBWidgetEvent &ev);
  66. bool HandlePopupMenuEvent(const TBWidgetEvent &ev);
  67. void InitializeMenuSources();
  68. void UpdateFindTextWidget();
  69. void HandleScreenMode(StringHash eventType, VariantMap& eventData);
  70. void HandleJavascriptSaved(StringHash eventType, VariantMap& eventData);
  71. void HandlePlatformChange(StringHash eventType, VariantMap& eventData);
  72. void HandleEditorShutdown(StringHash eventType, VariantMap& eventData);
  73. void HandleResourceEditorChanged(StringHash eventType, VariantMap& eventData);
  74. TBEditField* consoletext_;
  75. TBLayout* resourceviewcontainer_;
  76. TBLayout* inspectorlayout_;
  77. TBSkinImage* platformIndicator_;
  78. SharedPtr<ProjectFrame> projectframe_;
  79. SharedPtr<HierarchyFrame> hierarchyframe_;
  80. SharedPtr<InspectorFrame> inspectorframe_;
  81. SharedPtr<ResourceFrame> resourceframe_;
  82. SharedPtr<FindTextWidget> findtextwidget_;
  83. SharedPtr<MainToolbar> maintoolbar_;
  84. SharedPtr<WelcomeFrame> welcomeframe_;
  85. SharedPtr<PlayerWidget> playerwidget_;
  86. SharedPtr<MessageModal> messageModal_;
  87. SharedPtr<UIModalOps> uiModalOps_;
  88. };
  89. }