// Copyright Epic Games, Inc. All Rights Reserved.
namespace UnrealToolbox
{
///
/// Configuration for a tool that can be shown in the launcher
///
public class ToolConfig
{
///
/// Popup menu item for the tool
///
public ToolMenuItem? PopupMenu { get; set; }
///
/// Whether the install/uninstall for this tool needs to be triggered manually
///
public bool ManualInstall { get; set; }
///
/// Whether the install/uninstall for this tool needs administrator or root privileges
///
public bool RequiresElevation { get; set; } = false;
///
/// Whether the install/uninstall process window should be hidden
///
public bool Hidden { get; set; } = false;
///
/// Command to run when installing
///
public ToolCommand? InstallCommand { get; set; }
///
/// Command to run when uninstalling
///
public ToolCommand? UninstallCommand { get; set; }
}
///
/// Menu item for the tool
///
public class ToolMenuItem
{
///
/// Text to display for the menu item. If null, or a sequence of hyphens, will create a menu separator.
///
public string? Label { get; set; }
///
/// Command to run when the menu item is clicked. Will be executed in the root directory of the downloaded tool.
///
public ToolCommand? Command { get; set; }
///
/// Child menu items. Cannot be specified at the same time as a tool.
///
public List? Children { get; set; }
}
///
/// Command to run for a menu item.
///
public class ToolCommand
{
///
/// Executable to run
///
public string FileName { get; set; } = "cmd.exe";
///
/// Command line arguments for the tool
///
public List? Arguments { get; set; }
}
}