123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- 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
- {
- /// <summary>
- /// Current settings being used by the debugger
- /// </summary>
- Settings Settings { get; }
- /// <summary>
- /// True if the debug panel is currently being shown
- /// </summary>
- bool IsDebugPanelVisible { get; }
- /// <summary>
- /// True if the trigger is currently enabled
- /// </summary>
- bool IsTriggerEnabled { get; set; }
- IDockConsoleService DockConsole { get; }
- bool IsProfilerDocked { get; set; }
- /// <summary>
- /// Add <paramref name="entry"/> to the system information tab. See <seealso cref="InfoEntry"/> for how to create
- /// an info instance.
- /// </summary>
- /// <param name="entry">The entry to be added.</param>
- /// <param name="category">The category the entry should be added to.</param>
- void AddSystemInfo(InfoEntry entry, string category = "Default");
- /// <summary>
- /// Show the debug panel
- /// </summary>
- /// <param name="requireEntryCode">
- /// If true and entry code is enabled in settings, the user will be prompted for a passcode
- /// before opening the panel.
- /// </param>
- void ShowDebugPanel(bool requireEntryCode = true);
- /// <summary>
- /// Show the debug panel and open a certain tab
- /// </summary>
- /// <param name="tab">Tab that will appear when the debug panel is opened</param>
- /// <param name="requireEntryCode">
- /// If true and entry code is enabled in settings, the user will be prompted for a passcode
- /// before opening the panel.
- /// </param>
- void ShowDebugPanel(DefaultTabs tab, bool requireEntryCode = true);
- /// <summary>
- /// Hide the debug panel
- /// </summary>
- void HideDebugPanel();
- /// <summary>
- /// Hide the debug panel, then remove it from the scene to save memory.
- /// </summary>
- void DestroyDebugPanel();
- /// <summary>
- /// Add all an objects compatible properties and methods to the options panel.
- /// <remarks>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.</remarks>
- /// </summary>
- /// <param name="container">The object to add.</param>
- void AddOptionContainer(object container);
-
- /// <summary>
- /// Remove all properties and methods that the <paramref name="container"/> added to the options panel.
- /// </summary>
- /// <param name="container">The container to remove.</param>
- void RemoveOptionContainer(object container);
- /// <summary>
- /// Add an option to the options panel.
- /// </summary>
- void AddOption(OptionDefinition option);
- /// <summary>
- /// Remove an option from the options panel.
- /// </summary>
- /// <returns>True if option was successfully removed, otherwise false.</returns>
- bool RemoveOption(OptionDefinition option);
- /// <summary>
- /// Pin all options in a category.
- /// </summary>
- /// <param name="category"></param>
- void PinAllOptions(string category);
- /// <summary>
- /// Unpin all options in a category.
- /// </summary>
- /// <param name="category"></param>
- void UnpinAllOptions(string category);
- void PinOption(string name);
- void UnpinOption(string name);
- /// <summary>
- /// Clear all pinned options.
- /// </summary>
- void ClearPinnedOptions();
- /// <summary>
- /// Open a bug report sheet.
- /// </summary>
- /// <param name="onComplete">Callback to invoke once the bug report is completed or cancelled. Null to ignore.</param>
- /// <param name="takeScreenshot">
- /// Take a screenshot before opening the report sheet (otherwise a screenshot will be taken as
- /// the report is sent, if enabled in settings)
- /// </param>
- /// <param name="descriptionContent">Initial content of the bug report description</param>
- void ShowBugReportSheet(ActionCompleteCallback onComplete = null, bool takeScreenshot = true,
- string descriptionContent = null);
- /// <summary>
- /// Event invoked whenever the debug panel opens or closes
- /// </summary>
- event VisibilityChangedDelegate PanelVisibilityChanged;
- event PinnedUiCanvasCreated PinnedUiCanvasCreated;
- /// <summary>
- /// 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.
- /// </summary>
- /// <returns>The debug panel RectTransform.</returns>
- RectTransform EnableWorldSpaceMode();
- }
- }
|