ATWindowNotificationBus and ATFactoryRequestBus

Signed-off-by: Dayo Lawal <lawalfua@amazon.com>
This commit is contained in:
Dayo Lawal
2021-08-03 19:24:46 -05:00
parent 4eacd076da
commit 259bc3f85e
17 changed files with 61 additions and 177 deletions
@@ -9,12 +9,17 @@
#include <AtomToolsFramework/Communication/LocalServer.h>
#include <AtomToolsFramework/Communication/LocalSocket.h>
#include <AtomToolsFramework/Window/AtomToolsMainWindowNotificationBus.h>
#include <AzCore/Component/Entity.h>
#include <AzCore/Component/TickBus.h>
#include <AzCore/UserSettings/UserSettingsProvider.h>
#include <AzFramework/Application/Application.h>
#include <AzFramework/Asset/AssetSystemBus.h>
#include <AzQtComponents/Application/AzQtApplication.h>
#include <AzToolsFramework/API/AssetDatabaseBus.h>
#include <AzToolsFramework/API/EditorPythonConsoleBus.h>
#include <AzToolsFramework/Logger/TraceLogger.h>
@@ -31,6 +36,7 @@ namespace AtomToolsFramework
, protected AzFramework::AssetSystemStatusBus::Handler
, protected AzToolsFramework::EditorPythonConsoleNotificationBus::Handler
, protected AZ::UserSettingsOwnerRequestBus::Handler
, protected AtomToolsMainWindowNotificationBus::Handler
{
public:
AZ_TYPE_INFO(AtomTools::AtomToolsApplication, "{A0DF25BA-6F74-4F11-9F85-0F99278D5986}");
@@ -38,6 +44,7 @@ namespace AtomToolsFramework
using Base = AzFramework::Application;
AtomToolsApplication(int* argc, char*** argv);
~AtomToolsApplication();
//////////////////////////////////////////////////////////////////////////
// AzFramework::Application
@@ -52,6 +59,11 @@ namespace AtomToolsFramework
void Stop() override;
protected:
//////////////////////////////////////////////////////////////////////////
// AtomsToolMainWindowNotificationBus::Handler overrides...
void OnMainWindowClosing() override;
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// AssetDatabaseRequestsBus::Handler overrides...
bool GetAssetDatabaseLocation(AZStd::string& result) override;
@@ -8,6 +8,7 @@
#pragma once
#include <AtomToolsFramework/Window/AtomToolsMainWindowRequestBus.h>
#include <AzCore/Memory/SystemAllocator.h>
#include <AzQtComponents/Components/DockMainWindow.h>
@@ -19,11 +19,11 @@ namespace AtomToolsFramework
static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single;
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single;
/// Creates and shows the AtomToolsMainWindow
virtual void CreateAtomToolsMainWindow() = 0;
/// Creates and shows main window
virtual void CreateMainWindow() = 0;
//! Destroys material editor window and releases all cached assets
virtual void DestroyAtomToolsMainWindow() = 0;
//! Destroys main window and releases all cached assets
virtual void DestroyMainWindow() = 0;
};
using AtomToolsMainWindowFactoryRequestBus = AZ::EBus<AtomToolsMainWindowFactoryRequests>;
@@ -18,7 +18,7 @@ namespace AtomToolsFramework
static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Multiple;
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::Single;
virtual void OnAtomToolsMainWindowWindowClosing(){};
virtual void OnMainWindowClosing(){};
};
using AtomToolsMainWindowNotificationBus = AZ::EBus<AtomToolsMainWindowNotifications>;