// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Styling/AppStyle.h" #include "Tools/InteractiveToolsCommands.h" #include "Tools/StandardToolModeCommands.h" class FMeshPaintEditorModeCommands : public TCommands { public: FMeshPaintEditorModeCommands() : TCommands ( "MeshPaint", NSLOCTEXT("MeshPaintEditorMode", "MeshPaintingModeCommands", "Mesh Painting Mode"), NAME_None, FAppStyle::GetAppStyleSetName() ) {} /** * Initialize commands */ virtual void RegisterCommands() override; static TMap>> GetCommands() { return FMeshPaintEditorModeCommands::Get().Commands; } public: TSharedPtr SelectVertex; TSharedPtr SelectTextureColor; TSharedPtr SelectTextureAsset; TSharedPtr PaintVertexColor; TSharedPtr PaintVertexWeight; TSharedPtr PaintTextureColor; TSharedPtr PaintTextureAsset; TSharedPtr SwapColor; TSharedPtr FillVertex; TSharedPtr FillTexture; TSharedPtr PropagateMesh; TSharedPtr PropagateLODs; TSharedPtr SaveVertex; TSharedPtr SaveTexture; TSharedPtr Add; TSharedPtr RemoveVertex; TSharedPtr RemoveTexture; TSharedPtr Copy; TSharedPtr Paste; TSharedPtr Import; TSharedPtr GetTextureColors; TSharedPtr GetVertexColors; TSharedPtr FixVertex; TSharedPtr FixTexture; TSharedPtr PreviousLOD; TSharedPtr NextLOD; TSharedPtr PreviousTexture; TSharedPtr NextTexture; TSharedPtr IncreaseBrushRadius; TSharedPtr DecreaseBrushRadius; TSharedPtr IncreaseBrushStrength; TSharedPtr DecreaseBrushStrength; TSharedPtr IncreaseBrushFalloff; TSharedPtr DecreaseBrushFalloff; TMap>> Commands; }; class FMeshPaintingToolActionCommands : public TInteractiveToolCommands { public: FMeshPaintingToolActionCommands() : TInteractiveToolCommands( "MeshPaintingTools", // Context name for fast lookup NSLOCTEXT("MeshPaintEditorMode", "MeshPaintingToolsCommands", "Mesh Painting Tools"), // Localized context name for displaying NAME_None, // Parent FAppStyle::GetAppStyleSetName() // Icon Style Set ) { } virtual void GetToolDefaultObjectList(TArray& ToolCDOs) override; /** * interface that hides various per-tool action sets */ /** * Register all Tool command sets. Call this in module startup */ static void RegisterAllToolActions(); /** * Unregister all Tool command sets. Call this from module shutdown. */ static void UnregisterAllToolActions(); /** * Add or remove commands relevant to Tool to the given UICommandList. * Call this when the active tool changes (eg on ToolManager.OnToolStarted / OnToolEnded) * @param bUnbind if true, commands are removed, otherwise added */ static void UpdateToolCommandBinding(UInteractiveTool* Tool, TSharedPtr UICommandList, bool bUnbind = false); };