/* * 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 #endif namespace MaterialEditor { //! MaterialEditorMainWindow is the main class. Its responsibility is limited to initializing and connecting //! its panels, managing selection of assets, and performing high-level actions like saving. It contains... //! 2) MaterialViewport - The user can see the selected Material applied to a model. //! 3) MaterialPropertyInspector - The user edits the properties of the selected Material. class MaterialEditorMainWindow : public AtomToolsFramework::AtomToolsDocumentMainWindow { Q_OBJECT public: AZ_CLASS_ALLOCATOR(MaterialEditorMainWindow, AZ::SystemAllocator); using Base = AtomToolsFramework::AtomToolsDocumentMainWindow; MaterialEditorMainWindow(const AZ::Crc32& toolId, QWidget* parent = 0); 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... AZStd::string GetHelpDialogText() const override; AtomToolsFramework::AtomToolsDocumentInspector* m_documentInspector = {}; AtomToolsFramework::EntityPreviewViewportSettingsInspector* m_viewportSettingsInspector = {}; AtomToolsFramework::EntityPreviewViewportToolBar* m_toolBar = {}; AtomToolsFramework::EntityPreviewViewportWidget* m_materialViewport = {}; }; } // namespace MaterialEditor