using SRDebugger.Internal;
using UnityEngine;
namespace SRDebugger
{
public delegate void VisibilityChangedDelegate(bool isVisible);
public delegate void ActionCompleteCallback(bool success);
public delegate void PinnedUiCanvasCreated(RectTransform canvasTransform);
}
namespace SRDebugger.Services
{
using UnityEngine;
public interface IDebugService
{
///
/// Current settings being used by the debugger
///
Settings Settings { get; }
///
/// True if the debug panel is currently being shown
///
bool IsDebugPanelVisible { get; }
///
/// True if the trigger is currently enabled
///
bool IsTriggerEnabled { get; set; }
IDockConsoleService DockConsole { get; }
bool IsProfilerDocked { get; set; }
///
/// Add to the system information tab. See for how to create
/// an info instance.
///
/// The entry to be added.
/// The category the entry should be added to.
void AddSystemInfo(InfoEntry entry, string category = "Default");
///
/// Show the debug panel
///
///
/// If true and entry code is enabled in settings, the user will be prompted for a passcode
/// before opening the panel.
///
void ShowDebugPanel(bool requireEntryCode = true);
///
/// Show the debug panel and open a certain tab
///
/// Tab that will appear when the debug panel is opened
///
/// If true and entry code is enabled in settings, the user will be prompted for a passcode
/// before opening the panel.
///
void ShowDebugPanel(DefaultTabs tab, bool requireEntryCode = true);
///
/// Hide the debug panel
///
void HideDebugPanel();
///
/// Hide the debug panel, then remove it from the scene to save memory.
///
void DestroyDebugPanel();
///
/// Add all an objects compatible properties and methods to the options panel.
/// NOTE: It is not recommended to use this on a MonoBehaviour, it should be used on a standard
/// class made specifically for use as a settings object.
///
/// The object to add.
void AddOptionContainer(object container);
///
/// Remove all properties and methods that the added to the options panel.
///
/// The container to remove.
void RemoveOptionContainer(object container);
///
/// Add an option to the options panel.
///
void AddOption(OptionDefinition option);
///
/// Remove an option from the options panel.
///
/// True if option was successfully removed, otherwise false.
bool RemoveOption(OptionDefinition option);
///
/// Pin all options in a category.
///
///
void PinAllOptions(string category);
///
/// Unpin all options in a category.
///
///
void UnpinAllOptions(string category);
void PinOption(string name);
void UnpinOption(string name);
///
/// Clear all pinned options.
///
void ClearPinnedOptions();
///
/// Open a bug report sheet.
///
/// Callback to invoke once the bug report is completed or cancelled. Null to ignore.
///
/// Take a screenshot before opening the report sheet (otherwise a screenshot will be taken as
/// the report is sent, if enabled in settings)
///
/// Initial content of the bug report description
void ShowBugReportSheet(ActionCompleteCallback onComplete = null, bool takeScreenshot = true,
string descriptionContent = null);
///
/// Event invoked whenever the debug panel opens or closes
///
event VisibilityChangedDelegate PanelVisibilityChanged;
event PinnedUiCanvasCreated PinnedUiCanvasCreated;
///
/// ADVANCED FEATURE. This will convert the debug panel to a world space object and return the RectTransform.
/// This can be used to position the SRDebugger panel somewhere in your scene.
/// This feature is for advanced users only who know what they are doing. Only limited support will be provided
/// for this method.
/// The debug panel will be made visible if it is not already.
///
/// The debug panel RectTransform.
RectTransform EnableWorldSpaceMode();
}
}