/* * Copyright (c) Contributors to the Open 3D Engine Project. * For complete copyright and license terms please see the LICENSE at the root of this distribution. * * SPDX-License-Identifier: Apache-2.0 OR MIT * */ #pragma once #if !defined(Q_MOC_RUN) #include #include #include #include #include #include #include #include #include #include #include #include #include #endif namespace MaterialCanvas { //! MaterialCanvasMainWindow creates and manages all of the graph canvas and viewport related docked windows for Material Canvas. class MaterialCanvasMainWindow : public AtomToolsFramework::AtomToolsDocumentMainWindow { Q_OBJECT public: AZ_CLASS_ALLOCATOR(MaterialCanvasMainWindow, AZ::SystemAllocator); using Base = AtomToolsFramework::AtomToolsDocumentMainWindow; MaterialCanvasMainWindow( const AZ::Crc32& toolId, AtomToolsFramework::GraphViewSettingsPtr graphViewSettingsPtr, QWidget* parent = 0); ~MaterialCanvasMainWindow() = default; protected: // AtomToolsFramework::AtomToolsMainWindowRequestBus::Handler overrides... void ResizeViewportRenderTarget(uint32_t width, uint32_t height) override; void LockViewportRenderTargetSize(uint32_t width, uint32_t height) override; void UnlockViewportRenderTargetSize() override; // AtomToolsFramework::AtomToolsDocumentNotificationBus::Handler overrides... void OnDocumentOpened(const AZ::Uuid& documentId) override; // AtomToolsFramework::AtomToolsDocumentMainWindow overrides... void PopulateSettingsInspector(AtomToolsFramework::InspectorWidget* inspector) const override; void OnSettingsDialogClosed() override; AZStd::string GetHelpUrl() const override; private: AtomToolsFramework::AtomToolsDocumentInspector* m_documentInspector = {}; AtomToolsFramework::EntityPreviewViewportSettingsInspector* m_viewportSettingsInspector = {}; AtomToolsFramework::EntityPreviewViewportToolBar* m_toolBar = {}; AtomToolsFramework::EntityPreviewViewportWidget* m_materialViewport = {}; AtomToolsFramework::GraphViewSettingsPtr m_graphViewSettingsPtr; GraphCanvas::BookmarkDockWidget* m_bookmarkDockWidget = {}; GraphCanvas::NodePaletteDockWidget* m_nodePalette = {}; GraphCanvas::StyleManager m_styleManager; QTranslator m_translator; mutable AZStd::shared_ptr m_materialCanvasCompileSettingsGroup; }; } // namespace MaterialCanvas