diff --git a/Source/Krypton Components/Krypton.Docking/AgentsTasks/AgentsDocumentationTest.md b/Source/Krypton Components/Krypton.Docking/AgentsTasks/AgentsDocumentationTest.md new file mode 100644 index 0000000000..bd51941dc6 --- /dev/null +++ b/Source/Krypton Components/Krypton.Docking/AgentsTasks/AgentsDocumentationTest.md @@ -0,0 +1,209 @@ +------------------------------------------------------------ +This file is named: AgentsDocumentationTest.md +------------------------------------------------------------ + +ROLE +You generate complete and correct XML documentation for C# APIs. + +------------------------------------------------------------ +SCOPE RULES +------------------------------------------------------------ + +- Scope is defined by the user per task +- Scope is CLOSED once execution begins +- Do NOT include anything outside scope +- Do NOT infer related types or dependencies unless explicitly included +- Do not modify code logic +- Only add or update XML documentation + +Default visibility mode: PUBLIC ONLY + +Optional visibility modes: +- public only (default) +- public + internal +- public + internal + protected +- full (including private members) + +------------------------------------------------------------ +EXECUTION PIPELINE (STRICT ORDER) +------------------------------------------------------------ + +1. Scope lock +2. Type inventory +3. Member inventory +4. Documentation generation +5. Completeness verification +6. Unresolved report generation + +------------------------------------------------------------ +COMPLETENESS GUARANTEE +------------------------------------------------------------ + +A run is only valid if: + +- All scoped types are processed +- All members are documented or marked unresolved +- Inventory matches output exactly + +------------------------------------------------------------ +TYPE INVENTORY (MANDATORY FIRST STEP) +------------------------------------------------------------ + +Before writing any documentation: + +Identify ALL types in scope: + +- classes +- structs +- records +- enums +- interfaces +- delegates (including Func<...> and Action<...>) + +No documentation may be written until this list is complete. + +------------------------------------------------------------ +MEMBER INVENTORY (PER TYPE) +------------------------------------------------------------ + +For each type, enumerate ALL members: + +- constants +- fields +- properties +- methods +- events + +Each member MUST be explicitly listed before documentation begins. + +------------------------------------------------------------ +NO SKIPPING RULE +------------------------------------------------------------ + +- Every type must be processed +- Every member must be processed exactly once +- Similar or repetitive items MUST NOT be skipped or sampled +- Pattern-based omission is forbidden + +------------------------------------------------------------ +DOCUMENTATION RULES +------------------------------------------------------------ + +For every type and member: + +- Write concise XML documentation +- Must reflect observable behavior only +- Do not guess behavior not present in code + +Required content (as applicable): +- summary (intent only, no repetition of name) +- parameters +- return value +- exceptions (only if provable from code) +- nullability behavior +- side effects +- thread safety (if relevant) + +------------------------------------------------------------ +QUALITY RULES +------------------------------------------------------------ + +- No repetition of member names in summaries +- No vague verbs (handles, manages, processes) +- No implementation detail leakage +- Missing information must NOT be invented + +If behavior is unclear: +"Behavior not determinable from implementation" + +------------------------------------------------------------ +COMPLETENESS VERIFICATION (MANDATORY FINAL STEP) +------------------------------------------------------------ + +After documentation: + +- Re-scan scope +- Confirm every type is documented +- Confirm every member is documented +- Confirm no omissions vs inventory + +If mismatch exists → task is incomplete + +------------------------------------------------------------ +HALLUCINATION CONTROL + UNCERTAINTY LOGGING +------------------------------------------------------------ + +STRICT RULE: +Do not fabricate or assume undocumented behavior. + +If behavior cannot be determined from code: + +- Mark as UNRESOLVED +- Do not attempt inference +- Do not substitute similar logic + +CONTINUATION RULE: +Processing must continue even if unresolved items exist. + +------------------------------------------------------------ +UNCERTAINTY REPORT (REQUIRED OUTPUT) +------------------------------------------------------------ + +At completion, generate a report of all unresolved items: + +Format: + +### Unresolved Items + +- Type: + Member: + Reason: + +This report is REQUIRED even if empty. + +------------------------------------------------------------ +ANTI-REDUNDANCY RULE (STRICT) +------------------------------------------------------------ + +Do NOT generate XML documentation that only restates the code signature. + +The following are explicitly forbidden: + +- "This constructor creates an instance of class X" +- "This method returns a value of type X" +- "Gets or sets the X property" +- Any summary that repeats the member name or type without adding meaning + +------------------------------------------------------------ +DOCUMENTATION VALUE RULE +------------------------------------------------------------ + +Every summary MUST add at least one of the following: + +- Intent (why it exists) +- Behavior (what it does beyond syntax) +- Constraint (rules on input/output) +- Side effect (state change, IO, events) +- Invariant (what it guarantees) + +------------------------------------------------------------ +OBVIOUSNESS SUPPRESSION RULE +------------------------------------------------------------ + +If documentation would only restate: +- the type name +- the member name +- or the language keyword meaning + +THEN: +- suppress verbose output +- prefer minimal documentation +- or omit summary if allowed by policy + +------------------------------------------------------------ +SELF-CHECK BEFORE FINALIZING: +------------------------------------------------------------ + +If the summary can be removed without losing any new information, +it MUST be removed or rewritten. + diff --git a/Source/Krypton Components/Krypton.Docking/AgentsTasks/prompt.md b/Source/Krypton Components/Krypton.Docking/AgentsTasks/prompt.md new file mode 100644 index 0000000000..12e3edaa13 --- /dev/null +++ b/Source/Krypton Components/Krypton.Docking/AgentsTasks/prompt.md @@ -0,0 +1,12 @@ +TASK: +- Standard-Toolkit\Source\Krypton Components\Krypton.Docking\AgentsTasks\AgentsDocumentationTest.md + +SCOPE: +- Library: Standard-Toolkit\Source\Krypton Components\Krypton.Docking + +VISIBILITY: +- public only + +INSTRUCTIONS: +- follow AgentsDocumentationTest.md strictly + diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenGroup.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenGroup.cs index a37813adeb..af58bc8d07 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenGroup.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenGroup.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonNavigator to work as a docking auto hidden group control. +/// Bar-tab navigator along a dock edge that lists auto-hidden pages and swaps them for store placeholders when persisted. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,15 +22,16 @@ public class KryptonAutoHiddenGroup : KryptonNavigator { #region Events /// - /// Occurs when a page is becoming stored. + /// Raised before a page is replaced by a store placeholder so listeners can keep the unique name scoped to this auto-hidden location. /// public event EventHandler? StoringPage; #endregion #region Identity /// - /// Initialize a new instance of the KryptonAutoHiddenGroup class. + /// Configures bar-tab-only navigator appearance, tab orientation, and dock alignment for the specified edge. /// + /// Dock edge where this auto-hidden group is displayed. public KryptonAutoHiddenGroup(DockingEdge edge) { // Define appropriate appearance/behavior for an auto hidden group @@ -76,7 +77,7 @@ public KryptonAutoHiddenGroup(DockingEdge edge) #region Public /// - /// Convert all pages into store placeholders. + /// Replaces every non-placeholder page in the group with a that retains the same unique name. /// public void StoreAllPages() { @@ -96,9 +97,9 @@ public void StoreAllPages() } /// - /// Convert the named pages into store placeholders. + /// Replaces matching non-placeholder pages with store placeholders; raises before each replacement. /// - /// Array of page names. + /// Unique names of pages to store; a null array is ignored. public void StorePages(string[]? uniqueNames) { if (uniqueNames == null) @@ -124,9 +125,9 @@ public void StorePages(string[]? uniqueNames) } /// - /// Convert matching placeholders into actual pages. + /// Swaps each matching placeholder back to the supplied page when unique names align. /// - /// Array of pages to restore. + /// Pages to restore into the group. public void RestorePages(KryptonPage[] pages) { foreach (KryptonPage page in pages) diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenPanel.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenPanel.cs index 3d29e7dea1..27ef746a4f 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenPanel.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenPanel.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonPanel to work as a panel for hosting KryptonAutoHiddenGroup controls. +/// Panel that stacks controls along a dock edge with inward-facing padding. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -28,9 +28,9 @@ public class KryptonAutoHiddenPanel : KryptonPanel #region Identity /// - /// Initialize a new instance of the KryptonAutoHiddenPanel class. + /// Applies edge-specific padding so child auto-hidden groups are inset from the inner dock boundary. /// - /// Docking edge being managed. + /// Dock edge where this panel is anchored. public KryptonAutoHiddenPanel(DockingEdge edge) { // Add extra padding between the child items and the side facing inwards @@ -56,8 +56,10 @@ public KryptonAutoHiddenPanel(DockingEdge edge) #region Public /// - /// Retrieves the size of a rectangular area into which a control can be fitted. + /// Returns the aggregate preferred size of visible child groups plus panel padding; summing width or height depends on . /// + /// Layout constraint passed to each child group. + /// Combined preferred size for all visible auto-hidden groups. public override Size GetPreferredSize(Size proposedSize) { var width = 0; diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenProxyPage.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenProxyPage.cs index 010330042e..0b5d296fac 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenProxyPage.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenProxyPage.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Acts as a proxy for a KryptonPage inside an auto hidden group. +/// Stand-in in an auto-hidden group that forwards appearance, flags, and events to a cached real page. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,8 +22,9 @@ public class KryptonAutoHiddenProxyPage : KryptonPage { #region Identity /// - /// Initialize a new instance of the KryptonAutoHiddenProxyPage class. + /// Captures the target page and mirrors and control visibility onto it. /// + /// Page represented by this proxy; null throws . public KryptonAutoHiddenProxyPage(KryptonPage page) { @@ -52,12 +53,12 @@ protected override void Dispose(bool disposing) #region Public /// - /// Gets a reference to the page for which this is a proxy. + /// Underlying page whose properties and events this proxy forwards. /// public KryptonPage Page { get; } /// - /// Gets and sets the page text. + /// Tab caption mirrored on both the proxy and the cached page; falls back to the base value when is null during initialization. /// [AllowNull] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] @@ -79,7 +80,7 @@ public override string Text } /// - /// Gets and sets the title text for the page. + /// Title text forwarded to and from the cached page. /// [AllowNull] [DesignerSerializationVisibility( DesignerSerializationVisibility.Visible )] @@ -91,7 +92,7 @@ public override string TextTitle } /// - /// Gets and sets the description text for the page. + /// Description text forwarded to and from the cached page. /// [AllowNull] [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden)] @@ -103,7 +104,7 @@ public override string TextDescription } /// - /// Gets and sets the small image for the page. + /// Small tab image forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override Bitmap? ImageSmall @@ -114,7 +115,7 @@ public override Bitmap? ImageSmall } /// - /// Gets and sets the medium image for the page. + /// Medium tab image forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override Bitmap? ImageMedium @@ -125,7 +126,7 @@ public override Bitmap? ImageMedium } /// - /// Gets and sets the large image for the page. + /// Large tab image forwarded to and from the cached page. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override Bitmap? ImageLarge @@ -136,7 +137,7 @@ public override Bitmap? ImageLarge } /// - /// Gets and sets the page tooltip image. + /// Tooltip image forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override Bitmap? ToolTipImage @@ -147,7 +148,7 @@ public override Bitmap? ToolTipImage } /// - /// Gets and sets the tooltip image transparent color. + /// Transparent color for the tooltip image on the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override Color ToolTipImageTransparentColor @@ -158,7 +159,7 @@ public override Color ToolTipImageTransparentColor } /// - /// Gets and sets the page tooltip title text. + /// Tooltip title text forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden)] public override string ToolTipTitle @@ -169,7 +170,7 @@ public override string ToolTipTitle } /// - /// Gets and sets the page tooltip body text. + /// Tooltip body text forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override string ToolTipBody @@ -180,7 +181,7 @@ public override string ToolTipBody } /// - /// Gets and sets the tooltip label style. + /// Tooltip label style forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override LabelStyle ToolTipStyle @@ -191,7 +192,7 @@ public override LabelStyle ToolTipStyle } /// - /// Gets and sets the KryptonContextMenu to show when right-clicked. + /// Context menu shown on right-click, forwarded to and from the cached page. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden )] public override KryptonContextMenu? KryptonContextMenu @@ -202,7 +203,7 @@ public override KryptonContextMenu? KryptonContextMenu } /// - /// Gets and sets the unique name of the page. + /// Unique page identifier forwarded to and from the cached page. /// [DisallowNull] [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden)] @@ -214,21 +215,21 @@ public override string UniqueName } /// - /// Gets the string that matches the mapping request. + /// Resolves display text from the cached page for the requested mapping. /// - /// Text mapping. - /// Matching string. + /// Text field to resolve. + /// Text from the cached page for the mapping. public override string GetTextMapping(MapKryptonPageText mapping) => Page.GetTextMapping(mapping); /// - /// Gets the image that matches the mapping request. + /// Resolves a display image from the cached page for the requested mapping. /// - /// Image mapping. - /// Image reference. + /// Image field to resolve. + /// Image from the cached page for the mapping. public override Image? GetImageMapping(MapKryptonPageImage mapping) => Page.GetImageMapping(mapping); /// - /// Gets and sets the set of page flags. + /// Page flags forwarded to and from the cached page. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override int Flags @@ -239,26 +240,26 @@ public override int Flags } /// - /// Set all the provided flags to true. + /// Enables the specified flags on the cached page. /// - /// Flags to set. + /// Flags to enable. public override void SetFlags(KryptonPageFlags flags) => Page.SetFlags(flags); /// - /// Sets all the provided flags to false. + /// Clears the specified flags on the cached page. /// - /// Flags to set. + /// Flags to clear. public override void ClearFlags(KryptonPageFlags flags) => Page.ClearFlags(flags); /// - /// Are all the provided flags set to true. + /// Returns whether all specified flags are enabled on the cached page. /// /// Flags to test. - /// True if all provided flags are defined as true; otherwise false. + /// True when every flag is set on the cached page; otherwise false. public override bool AreFlagsSet(KryptonPageFlags flags) => Page.AreFlagsSet(flags); /// - /// Gets the last value set to the Visible property. + /// Last visibility assignment forwarded to the cached page. /// [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] @@ -270,7 +271,9 @@ public override bool LastVisibleSet set => Page.LastVisibleSet = value; } - /// Occurs when an appearance specific page property has changed. + /// + /// Appearance property changes on the cached page; subscribers attach to the underlying page's event. + /// public override event PropertyChangedEventHandler? AppearancePropertyChanged { add => Page.AppearancePropertyChanged += value; diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenSlidePanel.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenSlidePanel.cs index e1804b090e..6356c0dfe5 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenSlidePanel.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonAutoHiddenSlidePanel.cs @@ -17,7 +17,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonPanel to work as a panel for hosting the display of a sliding in/out page. +/// Animated slide-out host that reveals an auto-hidden page from a dock edge and dismisses it on focus loss or Escape. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -57,49 +57,49 @@ public class KryptonAutoHiddenSlidePanel : KryptonPanel, #region Events /// - /// Occurs when the separator is about to be moved and requests the rectangle of allowed movement. + /// Raised before the embedded separator moves; handlers can supply the allowed movement rectangle via event args. /// [Category("Behavior")] [Description("Occurs when the separator is about to be moved and requests the rectangle of allowed movement.")] public event EventHandler? SplitterMoveRect; /// - /// Occurs when the separator move finishes and a move has occurred. + /// Raised after the embedded separator completes a move that changed its position. /// [Category("Behavior")] [Description("Occurs when the separator move finishes and a move has occurred.")] public event SplitterEventHandler? SplitterMoved; /// - /// Occurs when the separator has moved to a new position. + /// Raised while the embedded separator is being dragged to a new position; cancellation is supported via event args. /// [Category("Behavior")] [Description("Occurs when the separator has moved to a new position.")] public event SplitterCancelEventHandler? SplitterMoving; /// - /// Occurs when the user clicks the close button for a page. + /// Raised when the user activates a page close button in the embedded dockspace. /// [Category("Behavior")] [Description("Occurs when the user clicks the close button for a page.")] public event EventHandler? PageCloseClicked; /// - /// Occurs when the user clicks the auto hidden button for a page. + /// Raised when the user activates a page auto-hidden pin button in the embedded dockspace. /// [Category("Behavior")] [Description("Occurs when the user clicks the auto hidden button for a page.")] public event EventHandler? PageAutoHiddenClicked; /// - /// Occurs when a page requests that a drop-down menu be shown. + /// Raised when a page requests a drop-down menu from the embedded dockspace; the slide-out is focused first to prevent premature dismissal. /// [Category("Behavior")] [Description("Occurs when the user clicks the drop-down button for a page.")] public event EventHandler? PageDropDownClicked; /// - /// Occurs when an auto hidden page showing state changes. + /// Raised when the slide panel transitions between values. /// [Category("Behavior")] [Description("Occurs when an auto hidden page showing state changes.")] @@ -110,11 +110,11 @@ public class KryptonAutoHiddenSlidePanel : KryptonPanel, #region Identity /// - /// Initialize a new instance of the KryptonAutoHiddenSlidePanel class. + /// Plants the slide panel into the host control, wires slide/dismiss timers, and registers as an application message filter. /// - /// Reference to control that is being managed. - /// Docking edge being managed. - /// Reference to auto hidden panel for this edge. + /// Host control whose client area receives the slide panel. + /// Dock edge from which pages slide out. + /// Auto-hidden tab panel adjacent to this slide area. public KryptonAutoHiddenSlidePanel(Control control, DockingEdge edge, KryptonAutoHiddenPanel panel) { _control = control; @@ -229,23 +229,23 @@ protected override void Dispose(bool disposing) #region Public /// - /// Gets access to the KryptonDockspace control. + /// Embedded that hosts the sliding page content. /// public KryptonDockspace DockspaceControl => _dockspaceSlide; /// - /// Gets access to the KryptonSeparator control. + /// Separator between the slide-out content and the remaining client area. /// public KryptonDockspaceSeparator SeparatorControl { get; } /// - /// Gets access to the KryptonPage associated with the slide panel. + /// Page currently displayed in the slide-out, or null when hidden. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public KryptonPage? Page { get; private set; } /// - /// Gets and sets the drag page notify interface associated with the embedded dockspace. + /// Drag notification interface forwarded to the embedded dockspace for page drag operations. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public IDragPageNotify? DragPageNotify @@ -255,7 +255,7 @@ public IDragPageNotify? DragPageNotify } /// - /// Remove from view any slide out page. + /// Immediately hides the slide-out when any page is currently shown or animating. /// public void HideUniqueName() { @@ -267,9 +267,9 @@ public void HideUniqueName() } /// - /// Remove from view the slide out page if it matches the unique name provided. + /// Immediately hides the slide-out only when the displayed page's unique name matches . /// - /// Unique name of the page to be hidden. + /// Unique name of the page to hide. public void HideUniqueName(string uniqueName) { // If we are processing the provided page then instantly remove it @@ -280,11 +280,11 @@ public void HideUniqueName(string uniqueName) } /// - /// Requests the panel slide into view and display the provided page. + /// Animates the panel open to display ; switches pages or reverses slide direction when already showing a different page. /// - /// Reference to page for display. - /// Reference to auto hidden group that displays the page. - /// Should the sliding out page become selected. + /// Page to display in the slide-out. + /// Auto-hidden group that owns the page tab. + /// When true, moves focus into the dockspace after sliding out. public void SlideOut(KryptonPage? page, KryptonAutoHiddenGroup group, bool select) { // Check to see if we allowed to perform operations @@ -391,7 +391,7 @@ public void SlideOut(KryptonPage? page, KryptonAutoHiddenGroup group, bool selec } /// - /// Requests the panel slide out of view. + /// Schedules a delayed slide-in when the panel is showing or sliding out; no effect when already hidden or sliding in. /// public void SlideIn() { @@ -421,10 +421,10 @@ public void SlideIn() } /// - /// Update the size and position of the slide out panel. + /// While fully shown, applies size deltas to the panel and persists the new dimensions on the displayed page's value. /// - /// Delta width to apply. - /// Delta height to apply. + /// Width delta to apply for left/right edges. + /// Height delta to apply for top/bottom edges. public void UpdateSize(int width, int height) { // Can only apply change when fully showing @@ -499,10 +499,10 @@ public void UpdateSize(int width, int height) } /// - /// Filters out a message before it is dispatched. + /// Intercepts Escape to dismiss the slide-out and monitors mouse movement to start or cancel the dismiss timer when the pointer leaves the slide or tab areas. /// - /// The message to be dispatched. You cannot modify this message. - /// true to filter out; false otherwise. + /// Windows message being dispatched. + /// True when Escape dismisses the slide-out; otherwise false to allow normal dispatch. public bool PreFilterMessage(ref Message msg) { // The form this component is situated on diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableNavigator.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableNavigator.cs index ed6c21ef23..32abfe5f04 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableNavigator.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableNavigator.cs @@ -13,21 +13,21 @@ namespace Krypton.Docking; /// -/// Extends the KryptonNavigator to work within the docking framework. +/// Navigator integrated with the docking framework; surfaces page-insertion and context-menu customization events to docking elements. /// [ToolboxBitmap(typeof(KryptonDockableWorkspace), "ToolboxBitmaps.KryptonDockableNavigator.bmp")] public class KryptonDockableNavigator : KryptonNavigator { #region Events /// - /// Occurs when a page is being inserted into the navigator. + /// Raised before a page is inserted so docking elements can perform additional setup. /// [Category("DockableNavigator")] [Description("Occurs when a page is added to a workspace cell.")] public event EventHandler? CellPageInserting; /// - /// Occurs when a page requests that a drop-down menu be shown. + /// Raised when a tab context menu is about to open; handlers can customize or cancel the menu. /// [Category("DockableNavigator")] [Description("Occurs when a page requests that a drop-down menu be shown.")] @@ -36,7 +36,7 @@ public class KryptonDockableNavigator : KryptonNavigator #region Identity /// - /// Initialize a new instance of the KryptonDockableNavigator class. + /// Subscribes to page insertion and context-menu display so docking events are raised from navigator activity. /// public KryptonDockableNavigator() { diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableWorkspace.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableWorkspace.cs index 00119de624..df97c30acb 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableWorkspace.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockableWorkspace.cs @@ -13,14 +13,14 @@ namespace Krypton.Docking; /// -/// Extends the KryptonWorkspace to work within the docking framework. +/// Dockable workspace that enables tab context menus and elevates the active cell's tab profile above inactive cells. /// [ToolboxBitmap(typeof(KryptonDockableWorkspace), "ToolboxBitmaps.KryptonDockableWorkspace.bmp")] public class KryptonDockableWorkspace : KryptonSpace { #region Identity /// - /// Initialize a new instance of the KryptonDockableWorkspace class. + /// Initializes a workspace space with store name "Workspace" and enables workspace tab context menus. /// public KryptonDockableWorkspace() : base(nameof(Workspace)) => @@ -28,9 +28,9 @@ public KryptonDockableWorkspace() ContextMenus.ShowContextMenu = true; /// - /// Gets a string representation of the instance. + /// Returns a diagnostic label that includes the control type name and current assignment. /// - /// String. + /// Label identifying this workspace instance. public override string ToString() => $"KryptonDockableWorkspace {Dock}"; #endregion diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspace.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspace.cs index e9f380d6f6..6d4552d246 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspace.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspace.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonWorkspace to work within the docking edge of a control. +/// Workspace hosted on a control dock edge with a default minimum size for docked page layout. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,7 +22,7 @@ public class KryptonDockspace : KryptonSpace { #region Identity /// - /// Initialize a new instance of the KryptonDockspace class. + /// Initializes a docked space with store name "Docked" and a 150×150 default . /// /// /// If Min Size not set in the Embedded control, then will default to 150, 50 @@ -33,9 +33,9 @@ public KryptonDockspace() base.MinimumSize = new Size(150, 150); /// - /// Gets a string representation of the class. + /// Returns a diagnostic label that includes the control type name and current assignment. /// - /// + /// Label identifying this dockspace instance. public override string ToString() => $@"KryptonDockspace {Dock}"; #endregion diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSeparator.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSeparator.cs index b2d2bd9fc8..6508ab08f8 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSeparator.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSeparator.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonSeparator so work between dockspace entries on a control edge. +/// Low-profile separator placed between dockspace regions along a control edge. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,10 +22,10 @@ public class KryptonDockspaceSeparator : KryptonSeparator { #region Identity /// - /// Initialize a new instance of the KryptonDockspaceSeparator class. + /// Configures dock alignment, orientation, and low-profile separator style for the specified edge. /// - /// Docking edge the separator is against. - /// Should the separator be docked against the opposite edge. + /// Dock edge the separator adjoins. + /// When true, docks the separator on the opposite side of the edge. public KryptonDockspaceSeparator(DockingEdge edge, bool opposite) { // Setup docking specific settings for the separator @@ -35,9 +35,9 @@ public KryptonDockspaceSeparator(DockingEdge edge, bool opposite) } /// - /// Gets a string representation of the class. + /// Returns a diagnostic label that includes dock alignment and separator orientation. /// - /// + /// Label identifying this separator instance. public override string ToString() => $@"KryptonDockspaceSeparator {Dock} {Orientation}"; #endregion diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSlide.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSlide.cs index 878e74b27b..5077bd8118 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSlide.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonDockspaceSlide.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonWorkspace to work within the docking edge of a control. +/// Dockspace variant used inside auto-hidden slide panels; shows a single page in header-group mode with page drag disabled. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,7 +22,7 @@ public class KryptonDockspaceSlide : KryptonDockspace { #region Identity /// - /// Initialize a new instance of the KryptonDockspaceSlide class. + /// Disables in-control page drag because slide-out dockspaces host a single transient page. /// public KryptonDockspaceSlide() => // Cannot drag pages inside the sliding dockspace diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatingWindow.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatingWindow.cs index 02900ba307..ae73e02340 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatingWindow.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatingWindow.cs @@ -12,7 +12,7 @@ namespace Krypton.Docking; -/// Extends the KryptonForm to act as a floating window within the docking framework. +/// Top-level floating form that hosts a and delegates caption drag and close to the docking manager. [ToolboxItem(false)] [DesignerCategory("code")] [DesignTimeVisible(false)] @@ -24,23 +24,23 @@ public class KryptonFloatingWindow : KryptonForm #region Events /// - /// Occurs when the window close is requested and provides the set of pages visible. + /// Raised when the user attempts to close the window; supplies unique names of visible, closeable pages and the close is cancelled. /// public event EventHandler? WindowCloseClicked; /// - /// Occurs when the window needs to be drag and dropped by its caption. + /// Raised when the user drags the caption bar (excluding min/close buttons) so the docking manager can reposition the window. /// public event EventHandler? WindowCaptionDragging; #endregion #region Identity /// - /// Initialize a new instance of the KryptonFloatingWindow class. + /// Configures floating-form chrome, assigns the owner form, and hosts the supplied floatspace as the client content. /// - /// Reference to form that will own all the floating window. - /// Reference to owning floatspace instance. - /// Allow window to be minimised. + /// Form that owns this floating window and receives minimize synchronization. + /// Workspace hosted inside the floating window; may be null. + /// When true, shows a minimize box on the floating window. public KryptonFloatingWindow(Form owner, KryptonFloatspace? floatspace, bool useMinimiseBox = false) { SetInheritedControlOverride(); @@ -71,7 +71,7 @@ public KryptonFloatingWindow(Form owner, KryptonFloatspace? floatspace, bool use #region Public /// - /// Gets access to the contained KryptonFloatspace control. + /// hosted as the floating window client area, or null when none was supplied. /// public KryptonFloatspace? FloatspaceControl { get; } diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatspace.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatspace.cs index 63e31df3f7..257206e5fd 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatspace.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonFloatspace.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonWorkspace to work within the docking floating window. +/// Workspace hosted inside a floating window with docking pin actions disabled. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,7 +22,7 @@ public class KryptonFloatspace : KryptonSpace { #region Identity /// - /// Initialize a new instance of the KryptonFloatspace class. + /// Initializes a floating workspace space with store name "Floating". /// public KryptonFloatspace() : base("Floating") @@ -30,9 +30,9 @@ public KryptonFloatspace() } /// - /// Gets a string representation of the class. + /// Returns a diagnostic label that includes the control type name and current assignment. /// - /// + /// Label identifying this floatspace instance. public override string ToString() => $"KryptonFloatspace {Dock}"; /// diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonSpace.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonSpace.cs index 875ef98906..eebe2c4010 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonSpace.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonSpace.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Extends the KryptonWorkspace with common functionality shared by various docking implementations. +/// Abstract workspace base that adds docking header buttons, per-cell state caching, focus-driven appearance, and docking layout persistence. /// public abstract class KryptonSpace : KryptonWorkspace { @@ -76,49 +76,49 @@ protected class CachedCellState #region Events /// - /// Occurs when the focus moves to be inside the KryptonWorkspaceCell instance. + /// Raised when keyboard focus enters a workspace cell, after the cell header switches to the active dock style. /// [Category("DockableWorkspace")] [Description("Occurs when the focus moves to be inside the KryptonWorkspaceCell instance.")] public event EventHandler? CellGainsFocus; /// - /// Occurs when the focus moves away from inside the KryptonWorkspaceCell instance. + /// Raised when keyboard focus leaves a workspace cell, after the cell header switches to the inactive dock style. /// [Category("DockableWorkspace")] [Description("Occurs when the focus moves away from inside the KryptonWorkspaceCell instance.")] public event EventHandler? CellLosesFocus; /// - /// Occurs when a page is being inserted into a cell. + /// Raised before a page is inserted into a cell so docking elements can perform additional setup. /// [Category("DockableWorkspace")] [Description("Occurs when a page is being inserted into a cell.")] public event EventHandler? CellPageInserting; /// - /// Occurs when a page requests that it be closed. + /// Raised when the user activates a cell close button for the selected page. /// [Category("DockableWorkspace")] [Description("Occurs when a page requests that it be closed.")] public event EventHandler? PageCloseClicked; /// - /// Occurs when a page requests that it be auto hidden state switched. + /// Raised when the user activates a cell pin button to toggle auto-hidden docking for the selected page. /// [Category("DockableWorkspace")] [Description("Occurs when a page requests that it be auto hidden state switched.")] public event EventHandler? PageAutoHiddenClicked; /// - /// Occurs when a page requests that a drop-down menu be shown. + /// Raised when a page drop-down menu is requested from a header button or context menu. /// [Category("DockableWorkspace")] [Description("Occurs when a page drop-down menu is requested from a header button.")] public event EventHandler? PageDropDownClicked; /// - /// Occurs when a page or set of pages have been double clicked. + /// Raised when the user double-clicks a page tab or primary header with one or more visible non-placeholder pages. /// [Category("DockableWorkspace")] [Description("Occurs when a page or set of pages have been double clicked.")] @@ -176,7 +176,7 @@ protected override void Dispose(bool disposing) #region Public /// - /// Gets and sets the tooltip used for the close button. + /// Tooltip text applied to close button specs on all cells; changing this value refreshes existing button tooltips. /// [Category("Dockable")] [Description("Tooltip for the close button.")] @@ -193,7 +193,7 @@ public string CloseTooltip } /// - /// Gets and sets the tooltip used for the pin button. + /// Tooltip text applied to pin button specs on all cells; changing this value refreshes existing button tooltips. /// [Category("Dockable")] [Description("Tooltip for the pin button.")] @@ -210,7 +210,7 @@ public string PinTooltip } /// - /// Gets and sets the tooltips used for the drop-down button. + /// Tooltip text applied to drop-down button specs on all cells; changing this value refreshes existing button tooltips. /// [Category("Dockable")] [Description("Tooltip for the drop-down button.")] @@ -227,21 +227,21 @@ public string DropDownTooltip } /// - /// Gets the button spec type for the pin button. + /// When true, pin buttons use horizontal style and honor ; when false, vertical style and apply. /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public bool AutoHiddenHost { get; set; } /// - /// Requests the visible state be updated. + /// Schedules an asynchronous refresh of cell visibility based on visible page counts when is enabled. /// public void UpdateVisible() => UpdateVisible(false); /// - /// Requests the visible state be updated. + /// Schedules an asynchronous refresh of cell visibility; optionally requests focus on this space after the update completes. /// - /// Should the current cell be given the focus. + /// When true, moves focus to this space after visibility is recalculated. public void UpdateVisible(bool focus) { if (ApplyDockingVisibility) @@ -273,10 +273,10 @@ public void UpdateVisible(bool focus) } /// - /// Write page details to xml during save process. + /// Writes unique name, store-page flag, and last-visible state as XML attributes when saving a docking layout. /// - /// XmlWriter to use for saving. - /// Reference to page. + /// Writer receiving the page element. + /// Page whose docking metadata is serialized. public override void WritePageElement(XmlWriter xmlWriter, KryptonPage page) { XmlHelper.TextToXmlAttribute(xmlWriter, @"UN", page.UniqueName); @@ -285,12 +285,13 @@ public override void WritePageElement(XmlWriter xmlWriter, KryptonPage page) } /// - /// Read page details from xml during load process. + /// Resolves or recreates a page from XML during layout load; may substitute a when the store flag is set. /// - /// XmlReader to use for loading. - /// Unique name of page being loaded. - /// Set of existing pages. - /// Reference to page to be added into the workspace cell. + /// Reader positioned at the page element. + /// Unique name of the page being loaded. + /// Lookup of pages not yet assigned during load. + /// The page to insert into a workspace cell, or null when recreation is cancelled. + /// Thrown when the reader cannot advance past the page start element. public override KryptonPage? ReadPageElement(XmlReader xmlReader, string uniqueName, UniqueNameToPage existingPages) diff --git a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonStorePage.cs b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonStorePage.cs index 1e1da95903..7561321e67 100644 --- a/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonStorePage.cs +++ b/Source/Krypton Components/Krypton.Docking/Control Docking/KryptonStorePage.cs @@ -22,10 +22,10 @@ public class KryptonStorePage : KryptonPage { #region Identity /// - /// Initialize a new instance of the KryptonStorePage class. + /// Creates an invisible placeholder that preserves a page unique name and docking storage context for later restoration. /// - /// UniqueName of the page this is placeholding. - /// Storage name associated with this page location. + /// Unique name of the page being represented. + /// Docking storage context that owns this placeholder. public KryptonStorePage([DisallowNull] string uniqueName, string storeName) { Visible = false; @@ -36,7 +36,7 @@ public KryptonStorePage([DisallowNull] string uniqueName, string storeName) #region Public /// - /// As a placeholder this page is never visible. + /// Always false for placeholders; the setter is a no-op so layout persistence cannot mark store pages visible. /// [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] @@ -48,7 +48,7 @@ public override bool LastVisibleSet } /// - /// Gets the storage name associated with this page. + /// Docking storage context (for example "Docked" or "Floating") that identifies where this placeholder belongs in the layout. /// [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Advanced)] diff --git a/Source/Krypton Components/Krypton.Docking/Doxygen/Doxyfile b/Source/Krypton Components/Krypton.Docking/Doxygen/Doxyfile new file mode 100644 index 0000000000..a50d43b818 --- /dev/null +++ b/Source/Krypton Components/Krypton.Docking/Doxygen/Doxyfile @@ -0,0 +1,2987 @@ +# Doxyfile 1.14.0 + +# This file describes the settings to be used by the documentation system +# Doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). +# +# Note: +# +# Use Doxygen to compare the used configuration file with the template +# configuration file: +# doxygen -x [configFile] +# Use Doxygen to compare the used configuration file with the template +# configuration file without replacing the environment variables or CMake type +# replacement variables: +# doxygen -x_noenv [configFile] + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "My Project" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewers a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# With the PROJECT_ICON tag one can specify an icon that is included in the tabs +# when the HTML document is shown. Doxygen will copy the logo to the output +# directory. + +PROJECT_ICON = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where Doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = "D:\Krypton\Standard-Toolkit\Source\Krypton Components\Krypton.Docking\Doxygen" + +# If the CREATE_SUBDIRS tag is set to YES then Doxygen will create up to 4096 +# sub-directories (in 2 levels) under the output directory of each output format +# and will distribute the generated files over these directories. Enabling this +# option can be useful when feeding Doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise cause +# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to +# control the number of sub-directories. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# Controls the number of sub-directories that will be created when +# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every +# level increment doubles the number of directories, resulting in 4096 +# directories at level 8 which is the default and also the maximum value. The +# sub-directories are organized in 2 levels, the first level always has a fixed +# number of 16 directories. +# Minimum value: 0, maximum value: 8, default value: 8. +# This tag requires that the tag CREATE_SUBDIRS is set to YES. + +CREATE_SUBDIRS_LEVEL = 8 + +# If the ALLOW_UNICODE_NAMES tag is set to YES, Doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by Doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, +# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English +# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, +# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with +# English messages), Korean, Korean-en (Korean with English messages), Latvian, +# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, +# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, +# Swedish, Turkish, Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, Doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, Doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, Doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, Doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which Doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where Doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, Doxygen will generate much shorter (but +# less readable) file names. This can be useful if your file system doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen will interpret the +# first line (until the first dot, question mark or exclamation mark) of a +# Javadoc-style comment as the brief description. If set to NO, the Javadoc- +# style will behave just like regular Qt-style comments (thus requiring an +# explicit @brief command for a brief description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then Doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by Doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will interpret the first +# line (until the first dot, question mark or exclamation mark) of a Qt-style +# comment as the brief description. If set to NO, the Qt-style will behave just +# like regular Qt-style comments (thus requiring an explicit \brief command for +# a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and Doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# Doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as Doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then Doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = YES + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by Doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make Doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by Doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then Doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by Doxygen, so you can +# mix Doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 6. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 6 + +# The MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to +# generate identifiers for the Markdown headings. Note: Every identifier is +# unique. +# Possible values are: DOXYGEN use a fixed 'autotoc_md' string followed by a +# sequence number starting at 0 and GITHUB use the lower case version of title +# with any whitespace replaced by '-' and punctuation characters removed. +# The default value is: DOXYGEN. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +MARKDOWN_ID_STYLE = DOXYGEN + +# When enabled Doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. Words listed in the +# AUTOLINK_IGNORE_WORDS tag are excluded from automatic linking. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# This tag specifies a list of words that, when matching the start of a word in +# the documentation, will suppress auto links generation, if it is enabled via +# AUTOLINK_SUPPORT. This list does not affect links explicitly created using \# +# or the \link or commands. +# This tag requires that the tag AUTOLINK_SUPPORT is set to YES. + +AUTOLINK_IGNORE_WORDS = + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let Doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also makes the inheritance and +# collaboration diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software) sources only. Doxygen will parse +# them like normal C++ but will assume all classes use public instead of private +# inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# Doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then Doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, Doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# Doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run Doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number of threads Doxygen is allowed to use +# during processing. When set to 0 Doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +# If the TIMESTAMP tag is set different from NO then each generated page will +# contain the date or date and time when the page was generated. Setting this to +# NO can help when comparing the output of multiple runs. +# Possible values are: YES, NO, DATETIME and DATE. +# The default value is: NO. + +TIMESTAMP = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, Doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# will also hide undocumented C++ concepts if enabled. This option has no effect +# if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_UNDOC_NAMESPACES tag is set to YES, Doxygen will hide all +# undocumented namespaces that are normally visible in the namespace hierarchy. +# If set to NO, these namespaces will be included in the various overviews. This +# option has no effect if EXTRACT_ALL is enabled. +# The default value is: YES. + +HIDE_UNDOC_NAMESPACES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES Doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and macOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# Possible values are: SYSTEM, NO and YES. +# The default value is: SYSTEM. + +CASE_SENSE_NAMES = SYSTEM + +# If the HIDE_SCOPE_NAMES tag is set to NO then Doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then Doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then Doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then Doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then Doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then Doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then Doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and Doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING Doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# Doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by Doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by Doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents Doxygen's defaults, run Doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run Doxygen from a directory containing a file called +# DoxygenLayout.xml, Doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +# The EXTERNAL_TOOL_PATH tag can be used to extend the search path (PATH +# environment variable) so that external tools such as latex and gs can be +# found. +# Note: Directories specified with EXTERNAL_TOOL_PATH are added in front of the +# path already specified by the PATH variable, and are added in the order +# specified. +# Note: This option is particularly useful for macOS version 14 (Sonoma) and +# higher, when running Doxygen from Doxywizard, because in this case any user- +# defined changes to the PATH are ignored. A typical example on macOS is to set +# EXTERNAL_TOOL_PATH = /Library/TeX/texbin /usr/local/bin +# together with the standard path, the full search path used by doxygen when +# launching external tools will then become +# PATH=/Library/TeX/texbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +EXTERNAL_TOOL_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by Doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by Doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then Doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, Doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# If WARN_IF_INCOMPLETE_DOC is set to YES, Doxygen will warn about incomplete +# function parameter documentation. If set to NO, Doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, Doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, Doxygen will warn about +# undocumented enumeration values. If set to NO, Doxygen will accept +# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: NO. + +WARN_IF_UNDOC_ENUM_VAL = NO + +# If WARN_LAYOUT_FILE option is set to YES, Doxygen will warn about issues found +# while parsing the user defined layout file, such as missing or wrong elements. +# See also LAYOUT_FILE for details. If set to NO, problems with the layout file +# will be suppressed. +# The default value is: YES. + +WARN_LAYOUT_FILE = YES + +# If the WARN_AS_ERROR tag is set to YES then Doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then Doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the Doxygen process Doxygen will return with a non-zero status. +# If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS_PRINT then Doxygen behaves +# like FAIL_ON_WARNINGS but in case no WARN_LOGFILE is defined Doxygen will not +# write the warning messages in between other messages but write them at the end +# of a run, in case a WARN_LOGFILE is defined the warning messages will be +# besides being in the defined file also be shown at the end of a run, unless +# the WARN_LOGFILE is defined as - i.e. standard output (stdout) in that case +# the behavior will remain as with the setting FAIL_ON_WARNINGS. +# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that Doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# See also: WARN_LINE_FORMAT +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# In the $text part of the WARN_FORMAT command it is possible that a reference +# to a more specific place is given. To make it easier to jump to this place +# (outside of Doxygen) the user can define a custom "cut" / "paste" string. +# Example: +# WARN_LINE_FORMAT = "'vi $file +$line'" +# See also: WARN_FORMAT +# The default value is: at line $line of file $file. + +WARN_LINE_FORMAT = "at line $line of file $file" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = "D:\Krypton\Standard-Toolkit\Source\Krypton Components\Krypton.Docking" + +# This tag can be used to specify the character encoding of the source files +# that Doxygen parses. Internally Doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# See also: INPUT_FILE_ENCODING +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# This tag can be used to specify the character encoding of the source files +# that Doxygen parses. The INPUT_FILE_ENCODING tag can be used to specify +# character encoding on a per file pattern basis. Doxygen will compare the file +# name with each pattern and apply the encoding instead of the default +# INPUT_ENCODING if there is a match. The character encodings are a list of the +# form: pattern=encoding (like *.php=ISO-8859-1). +# See also: INPUT_ENCODING for further information on supported encodings. + +INPUT_FILE_ENCODING = + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by Doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cxxm, +# *.cpp, *.cppm, *.ccm, *.c++, *.c++m, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, +# *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, +# *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be +# provided as Doxygen C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f18, *.f, *.for, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cxxm \ + *.cpp \ + *.cppm \ + *.ccm \ + *.c++ \ + *.c++m \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.l \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which Doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# ANamespace::AClass, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that Doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that Doxygen will use the data processed and written to standard output +# for further processing, therefore nothing else, like debug statements or used +# commands (so in case of a Windows batch file always use @echo OFF), should be +# written to standard output. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by Doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by Doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the Doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +# If the IMPLICIT_DIR_DOCS tag is set to YES, any README.md file found in sub- +# directories of the project's root, is used as the documentation for that sub- +# directory, except when the README.md starts with a \dir, \page or \mainpage +# command. If set to NO, the README.md file needs to start with an explicit \dir +# command in order to be used as directory documentation. +# The default value is: YES. + +IMPLICIT_DIR_DOCS = YES + +# The Fortran standard specifies that for fixed formatted Fortran code all +# characters from position 72 are to be considered as comment. A common +# extension is to allow longer lines before the automatic comment starts. The +# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can +# be processed before the automatic comment starts. +# Minimum value: 7, maximum value: 10000, default value: 72. + +FORTRAN_COMMENT_AFTER = 72 + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# multi-line macros, enums or list initialized variables directly into the +# documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct Doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of Doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by Doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then Doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then Doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which Doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not Doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then Doxygen will add the directory of each input to the +# include path. +# The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_ADD_INC_PATHS = YES + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by Doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not Doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) +# that should be ignored while generating the index headers. The IGNORE_PREFIX +# tag works for classes, function and member names. The entity will be placed in +# the alphabetical list under the first letter of the entity name that remains +# after removing the prefix. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, Doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank Doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that Doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that Doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of Doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank Doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that Doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank Doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that Doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by Doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# Note: Since the styling of scrollbars can currently not be overruled in +# Webkit/Chromium, the styling will be left out of the default doxygen.css if +# one or more extra stylesheets have been specified. So if scrollbar +# customization is desired it has to be added explicitly. For an example see the +# documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output +# should be rendered with a dark or light theme. +# Possible values are: LIGHT always generates light mode output, DARK always +# generates dark mode output, AUTO_LIGHT automatically sets the mode according +# to the user preference, uses light mode if no preference is set (the default), +# AUTO_DARK automatically sets the mode according to the user preference, uses +# dark mode if no preference is set and TOGGLE allows a user to switch between +# light and dark mode via a button. +# The default value is: AUTO_LIGHT. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE = AUTO_LIGHT + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a color-wheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use gray-scales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# If the HTML_CODE_FOLDING tag is set to YES then classes and functions can be +# dynamically folded and expanded in the generated HTML source code. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_CODE_FOLDING = YES + +# If the HTML_COPY_CLIPBOARD tag is set to YES then Doxygen will show an icon in +# the top right corner of code and text fragments that allows the user to copy +# its content to the clipboard. Note this only works if supported by the browser +# and the web page is served via a secure context (see: +# https://www.w3.org/TR/secure-contexts/), i.e. using the https: or file: +# protocol. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COPY_CLIPBOARD = YES + +# Doxygen stores a couple of settings persistently in the browser (via e.g. +# cookies). By default these settings apply to all HTML pages generated by +# Doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store +# the settings under a project specific key, such that the user preferences will +# be stored separately. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_PROJECT_COOKIE = + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, Doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then Doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline (the HTML help workshop was already many +# years in maintenance mode). You can download the HTML help workshop from the +# web archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by Doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# Doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# The SITEMAP_URL tag is used to specify the full URL of the place where the +# generated documentation will be placed on the server by the user during the +# deployment of the documentation. The generated sitemap is called sitemap.xml +# and placed on the directory specified by HTML_OUTPUT. In case no SITEMAP_URL +# is specified no sitemap is generated. For information about the sitemap +# protocol see https://www.sitemaps.org +# This tag requires that the tag GENERATE_HTML is set to YES. + +SITEMAP_URL = + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty Doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by Doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has more details information than the tab index, you +# could consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# When GENERATE_TREEVIEW is set to YES, the PAGE_OUTLINE_PANEL option determines +# if an additional navigation panel is shown at the right hand side of the +# screen, displaying an outline of the contents of the main page, similar to +# e.g. https://developer.android.com/reference If GENERATE_TREEVIEW is set to +# NO, this option has no effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +PAGE_OUTLINE_PANEL = YES + +# When GENERATE_TREEVIEW is set to YES, the FULL_SIDEBAR option determines if +# the side bar is limited to only the treeview area (value NO) or if it should +# extend to the full height of the window (value YES). Setting this to YES gives +# a layout similar to e.g. https://docs.readthedocs.io with more room for +# contents, but less room for the project logo, title, and description. If +# GENERATE_TREEVIEW is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# Doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# When the SHOW_ENUM_VALUES tag is set doxygen will show the specified +# enumeration values besides the enumeration mnemonics. +# The default value is: NO. + +SHOW_ENUM_VALUES = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, Doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the OBFUSCATE_EMAILS tag is set to YES, Doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, Doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# Doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for MathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with JavaScript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled Doxygen will generate a search box for +# the HTML output. The underlying search engine uses JavaScript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the JavaScript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , / /// Initial name of the element. - /// Reference to control that is being managed. - /// Docking edge being managed. + /// Control whose edge receives dockspace controls. + /// Edge of where dockspaces are placed. + /// is . public KryptonDockingEdgeDocked(string name, Control control, DockingEdge edge) : base(name) { @@ -55,69 +56,69 @@ public KryptonDockingEdgeDocked(string name, Control control, DockingEdge edge) #region Public /// - /// Gets the control this element is managing. + /// Control whose edge hosts the dockspace controls owned by this element. /// public Control Control { get; } /// - /// Gets the docking edge this element is managing. + /// Edge of where dockspaces and their separators are inserted. /// public DockingEdge Edge { get; } /// - /// Create and add a new dockspace instance to the correct edge of the owning control. + /// Creates a dockspace with a generated unique name and default size of 200, 200 at the outer end of this edge collection. /// - /// Reference to docking element that handles the new dockspace. + /// The new element, already added to this collection and parent control. public KryptonDockingDockspace AppendDockspace() => // Generate a unique string by creating a GUID AppendDockspace(CommonHelper.UniqueString); /// - /// Create and add a new dockspace instance to the correct edge of the owning control. + /// Creates a dockspace with the supplied name and default size of 200, 200 at the outer end of this edge collection. /// /// Initial name of the dockspace element. - /// Reference to docking element that handles the new dockspace. + /// The new element, already added to this collection and parent control. public KryptonDockingDockspace AppendDockspace(string name) => AppendDockspace(name, new Size(200, 200)); /// - /// Create and add a new dockspace instance to the correct edge of the owning control. + /// Creates a dockspace with the supplied name and size at the outer end of this edge collection. /// /// Initial name of the dockspace element. /// Initial size of the dockspace control. - /// Reference to docking element that handles the new dockspace. + /// The new element, already added to this collection and parent control. public KryptonDockingDockspace AppendDockspace(string name, Size size) => CreateAndInsertDockspace(Count, name, size); /// - /// Create and insert a new dockspace instance to the correct edge of the owning control. + /// Creates a dockspace with a generated unique name and default size of 200, 200 at the specified index. /// - /// Insertion index. - /// Reference to docking element that handles the new dockspace. + /// Zero-based insertion index within this edge collection. + /// The new element, already added to this collection and parent control. public KryptonDockingDockspace InsertDockspace(int index) => // Generate a unique string by creating a GUID InsertDockspace(index, CommonHelper.UniqueString); /// - /// Create and insert a new dockspace instance to the correct edge of the owning control. + /// Creates a dockspace with the supplied name and default size of 200, 200 at the specified index. /// - /// Insertion index. + /// Zero-based insertion index within this edge collection. /// Initial name of the dockspace element. - /// Reference to docking element that handles the new dockspace. + /// The new element, already added to this collection and parent control. public KryptonDockingDockspace InsertDockspace(int index, string name) => InsertDockspace(index, name, new Size(200, 200)); /// - /// Create and insert a new dockspace instance to the correct edge of the owning control. + /// Creates a dockspace with the supplied name and size at the specified index. /// - /// Insertion index. + /// Zero-based insertion index within this edge collection. /// Initial name of the dockspace element. /// Initial size of the dockspace control. - /// Reference to docking element that handles the new dockspace. + /// The new element, already added to this collection and parent control. public KryptonDockingDockspace InsertDockspace(int index, string name, Size size) => CreateAndInsertDockspace(index, name, size); /// - /// Find a edge docked element by searching the hierarchy. + /// Short-circuits hierarchy search by returning this element as the docked-edge host. /// - /// Named page for which a suitable docking edge element is required. - /// KryptonDockingEdgeDocked reference if found; otherwise false. + /// Unique name used when locating a docked edge host; not evaluated by this override. + /// This instance. public override KryptonDockingEdgeDocked FindDockingEdgeDocked(string uniqueName) => this; #endregion diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloating.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloating.cs index f87890ec77..50ad83fd47 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloating.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloating.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Provides docking functionality for floating windows. +/// Root collection element that creates and tracks floating-window children for a single owner form. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,10 +22,11 @@ public class KryptonDockingFloating : DockingElementClosedCollection { #region Identity /// - /// Initialize a new instance of the KryptonDockingFloating class. + /// Records as the owner form for floating windows created under this element. /// /// Initial name of the element. - /// Reference to form that will own all the floating windows. + /// Form assigned as owner for every floating window created under this element. + /// is . public KryptonDockingFloating(string name, Form ownerForm) : base(name) => OwnerForm = ownerForm ?? throw new ArgumentNullException(nameof(ownerForm)); @@ -34,37 +35,37 @@ public KryptonDockingFloating(string name, Form ownerForm) #region Public /// - /// Gets the form the floating windows have as the owner. + /// Form assigned as owner for every floating window created under this element. /// public Form OwnerForm { get; } /// - /// Create and add a new floating window. + /// Creates a child floating-window element with an auto-generated name and raises manager customization events. /// - /// Reference to docking element that handles the new workspace. + /// The new floating-window element added to this collection. public KryptonDockingFloatingWindow AddFloatingWindow() => // Generate a unique string by creating a GUID AddFloatingWindow(CommonHelper.UniqueString); /// - /// Create and add a new floating window. + /// Creates a child floating-window element with the supplied name and raises manager customization events. /// - /// Initial name of the dockspace element. - /// Reference to docking element that handles the new workspace. + /// Initial name of the floating-window element; may be . + /// The new floating-window element added to this collection. public KryptonDockingFloatingWindow AddFloatingWindow(string? name) => CreateFloatingWindow(name); /// - /// Find a floating docking element by searching the hierarchy. + /// Always returns this element; the argument is not consulted. /// - /// Named page for which a suitable floating element is required. - /// KryptonDockingFloating reference if found; otherwise false. + /// Unique name of the page being located. + /// This element. public override KryptonDockingFloating FindDockingFloating(string uniqueName) => this; /// - /// Return the floating window element that contains a placeholder for the named page. + /// Searches child floating-window elements for one that contains a store-page placeholder for . /// - /// Unique name for search. - /// Reference to KryptonDockingFloatingWindow if placeholder found; otherwise null. + /// Unique name of the page whose placeholder is sought. + /// The first matching child floating-window element, or when none contain the placeholder. public KryptonDockingFloatingWindow? FloatingWindowForStorePage(string uniqueName) { // Search all the child docking elements @@ -85,7 +86,7 @@ public KryptonDockingFloatingWindow AddFloatingWindow() => } /// - /// + /// Whether newly created floating windows expose a minimise box; not serialized by the designer. /// [DesignerSerializationVisibility( DesignerSerializationVisibility.Hidden)] public bool UseMinimiseBox { get; set; } diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatingWindow.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatingWindow.cs index bc5314d623..3f37dde9c7 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatingWindow.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatingWindow.cs @@ -15,7 +15,7 @@ namespace Krypton.Docking; /// -/// Provides docking functionality for a floating window that contains just a dockspace. +/// Docking element that hosts a single floatspace inside a floating . /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -30,12 +30,13 @@ public class KryptonDockingFloatingWindow : DockingElementClosedCollection #region Identity /// - /// Initialize a new instance of the KryptonDockingFloatingWindow class. + /// Creates a around and adds the floatspace as the sole child element. /// /// Initial name of the element. - /// Reference to form that owns the floating windows. - /// Reference to form that will own all the floating window. - /// Allow window to be minimised. + /// Form assigned as owner of the floating window. + /// Floatspace element hosted inside the floating window. + /// Whether the floating window shows a minimise box. + /// or is . public KryptonDockingFloatingWindow(string? name, [DisallowNull] Form owner, [DisallowNull] KryptonDockingFloatspace floatspace, bool useMinimiseBox) : base(name) { @@ -68,7 +69,7 @@ public KryptonDockingFloatingWindow(string? name, [DisallowNull] Form owner, [Di #region Public /// - /// Gets and sets access to the parent docking element. + /// When assigned, refreshes floatspace strings from the docking manager. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override IDockingElement? Parent @@ -84,20 +85,20 @@ public override IDockingElement? Parent } /// - /// Gets the window this element is managing. + /// On-screen floating window control created for this element. /// public KryptonFloatingWindow FloatingWindow { get; } /// - /// Gets the floatspace element contained by the floating window. + /// Floatspace child hosted inside . /// public KryptonDockingFloatspace FloatspaceElement { get; } /// - /// Propagates an action request down the hierarchy of docking elements. + /// For and , suspends floatspace layout and toggles an obscuring overlay; other actions delegate to the base implementation. /// - /// Action that is requested to be performed. - /// Array of unique names of the pages the action relates to. + /// Docking operation to forward. + /// Page unique names targeted by the action. public override void PropogateAction(DockingPropogateAction action, string[]? uniqueNames) { switch (action) @@ -137,11 +138,11 @@ public override void PropogateAction(DockingPropogateAction action, string[]? un } /// - /// Propagates a request for drag targets down the hierarchy of docking elements. + /// Contributes drag targets only when this floating window is visible and is not the window being dragged. /// - /// Reference to window being dragged. - /// Set of pages being dragged. - /// Collection of drag targets. + /// Floating window under drag, if any. + /// Pages under drag. + /// List to append candidate targets into. public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, PageDragEndData? dragData, DragTargetList targets) @@ -154,16 +155,16 @@ public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, } /// - /// Return the workspace cell that contains the named page. + /// Locates the workspace cell in the contained floatspace that hosts . /// - /// Unique name for search. - /// Reference to KryptonWorkspaceCell if match found; otherwise null. + /// Unique name of the page to locate. + /// The hosting cell, or when the page is not present. public KryptonWorkspaceCell? CellForPage(string uniqueName) => FloatspaceElement.CellForPage(uniqueName); /// - /// Ensure the provided page is selected within the cell that contains it. + /// Selects within its workspace cell when that page exists in the floatspace. /// - /// Unique name to be selected. + /// Unique name of the page to select. public void SelectPage(string uniqueName) { // Find the cell that contains the target named paged @@ -177,9 +178,9 @@ public void SelectPage(string uniqueName) } /// - /// Saves docking configuration information using a provider xml writer. + /// Writes floating-window location, client size, and child element XML for this element. /// - /// Xml writer object. + /// Destination XML writer. public override void SaveElementToXml(XmlWriter xmlWriter) { // Output floating window docking element diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatspace.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatspace.cs index 547dd0b164..83639b3919 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatspace.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingFloatspace.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Provides docking functionality within a floating window using a KryptonFloatspace. +/// Docking element that hosts floating pages in a inside a floating window. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -22,7 +22,7 @@ public class KryptonDockingFloatspace : KryptonDockingSpace { #region Identity /// - /// Initialize a new instance of the KryptonDockingFloatspace class. + /// Creates a floatspace element with a fill-docked control wired to standard page interaction events. /// /// Initial name of the element. public KryptonDockingFloatspace(string name) @@ -41,16 +41,16 @@ public KryptonDockingFloatspace(string name) #region Public /// - /// Gets the control this element is managing. + /// The workspace control created and owned by this element. /// public KryptonFloatspace FloatspaceControl => (KryptonFloatspace)SpaceControl!; /// - /// Propagates a request for drag targets down the hierarchy of docking elements. + /// When the floatspace has visible cells, adds drag targets for dragged pages that allow floating placement. /// - /// Reference to window being dragged. - /// Set of pages being dragged. - /// Collection of drag targets. + /// Floating window associated with the drag operation. + /// Pages being dragged. + /// Collection that receives generated floatspace drag targets. public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, PageDragEndData? dragData, DragTargetList targets) @@ -80,10 +80,10 @@ public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, } /// - /// Find the docking location of the named page. + /// Returns when a non-placeholder page with the unique name exists in this floatspace; otherwise . /// - /// Unique name of the page. - /// Enumeration value indicating docking location. + /// Unique name of the page to locate. + /// The docking location for the named page. public override DockingLocation FindPageLocation(string uniqueName) { KryptonPage? page = FloatspaceControl.PageForUniqueName(uniqueName); @@ -94,10 +94,10 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find the docking element that contains the named page. + /// Returns this element when it contains a non-placeholder page with the specified unique name. /// - /// Unique name of the page. - /// IDockingElement reference if page is found; otherwise null. + /// Unique name of the page to locate. + /// This docking element when the page is present; otherwise . public override IDockingElement? FindPageElement(string uniqueName) { KryptonPage? page = FloatspaceControl.PageForUniqueName(uniqueName); @@ -108,11 +108,11 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find the docking element that contains the location specific store page for the named page. + /// When is , returns this element if a store page with the unique name exists. /// - /// Location to be searched. - /// Unique name of the page to be found. - /// IDockingElement reference if store page is found; otherwise null. + /// Docking location that must be searched. + /// Unique name of the store page to locate. + /// This docking element when a matching store page is present; otherwise . public override IDockingElement? FindStorePageElement(DockingLocation location, string uniqueName) { if (location == DockingLocation.Floating) @@ -264,10 +264,10 @@ protected override void RaiseSpacePageDrop(object? sender, PageDropEventArgs e) protected override string XmlElementName => @"DF"; /// - /// Loads docking configuration information using a provider xml reader. + /// Restores floatspace layout from XML and disposes the control when no pages were loaded. /// - /// Xml reader object. - /// Collection of available pages for adding. + /// XML reader positioned at this element. + /// Available pages used to recreate layout content. public override void LoadElementFromXml(XmlReader xmlReader, KryptonPageCollection pages) { // Let base class load the pages into the floatspace diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingManager.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingManager.cs index bfb09ba06b..8198a295e0 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingManager.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingManager.cs @@ -18,7 +18,7 @@ namespace Krypton.Docking; /// -/// Manages a hierarchy of docking elements to provide docking windows functionality. +/// Root docking element collection that coordinates docking windows layout, page state, and configuration persistence. /// [ToolboxItem(true)] [ToolboxBitmap(typeof(KryptonDockingManager), "ToolboxBitmaps.KryptonDockingManager.bmp")] @@ -30,84 +30,84 @@ public class KryptonDockingManager : DockingElementOpenCollection { #region Events /// - /// Occurs when the user requests a page be closed. + /// Raised when a page close is requested; handlers choose hide, remove, or dispose via . /// [Category("User Request")] [Description("Occurs when the user requests a page be closed.")] public event EventHandler? PageCloseRequest; /// - /// Occurs when the user requests a page become docked. + /// Raised before a page moves to docked layout; set to prevent the change. /// [Category("User Request")] [Description("Occurs when the user requests a page become docked.")] public event EventHandler? PageDockedRequest; /// - /// Occurs when the user requests a page become auto hidden. + /// Raised before a page moves to auto-hidden layout; set to prevent the change. /// [Category("User Request")] [Description("Occurs when the user requests a page become auto hidden.")] public event EventHandler? PageAutoHiddenRequest; /// - /// Occurs when the user requests a page become floating. + /// Raised before a page moves to a floating window; set to prevent the change. /// [Category("User Request")] [Description("Occurs when the user requests a page become floating.")] public event EventHandler? PageFloatingRequest; /// - /// Occurs when the user requests a page become workspace tabbed. + /// Raised before a page moves to workspace tabbed layout; set to prevent the change. /// [Category("User Request")] [Description("Occurs when the user requests a page become workspace tabbed.")] public event EventHandler? PageWorkspaceRequest; /// - /// Occurs when the user requests a page become navigator tabbed. + /// Raised before a page moves to navigator tabbed layout; set to prevent the change. /// [Category("User Request")] [Description("Occurs when the user requests a page become navigator tabbed.")] public event EventHandler? PageNavigatorRequest; /// - /// Occurs when a docking context menu is about to be shown for a page. + /// Raised after default page context-menu items are built and before display; handlers may customize items or set to suppress the menu. /// [Category("User Request")] [Description("Occurs when a docking context menu is about to be shown for a page.")] public event EventHandler? ShowPageContextMenu; /// - /// Occurs when a dockable workspace context menu is about to be shown for a page. + /// Raised after default workspace page context-menu items are built and before display; handlers may customize items or set to suppress the menu. /// [Category("User Request")] [Description("Occurs when a dockable workspace context menu is about to be shown for a page.")] public event EventHandler? ShowWorkspacePageContextMenu; /// - /// Occurs when global docking configuration information is saving. + /// Raised during so handlers can write custom global docking data to the XML writer. /// [Category("Persistence")] [Description("Occurs when globaldocking configuration information is saving.")] public event EventHandler? GlobalSaving; /// - /// Occurs when global docking configuration information is loading. + /// Raised during so handlers can read custom global docking data from the XML reader. /// [Category("Persistence")] [Description("Occurs when global docking configuration information is loading.")] public event EventHandler? GlobalLoading; /// - /// Occurs when page docking configuration information is saving. + /// Raised while page docking configuration XML for a page is being written during save. /// [Category("Persistence")] [Description("Occurs when page docking configuration information is saving.")] public event EventHandler? PageSaving; /// - /// Occurs when page docking configuration information is loading. + /// Raised while page docking configuration XML for a page is being read during load. /// [Category("Persistence")] [Description("Occurs when page docking configuration information is loading.")] @@ -121,196 +121,196 @@ public class KryptonDockingManager : DockingElementOpenCollection public event EventHandler? OrphanedPages; /// - /// Occurs when docking configuration information is loading and a page needs creating to match incoming unique name. + /// Raised during configuration load when a page with the incoming unique name must be created. /// [Category("Persistence")] [Description("Occurs when docking configuration information is loading and a page needs creating to match incoming unique name.")] public event EventHandler? RecreateLoadingPage; /// - /// Occurs when a separator is used to resize an auto hidden dockspace. + /// Raised when the user finishes resizing an auto-hidden dockspace via a separator. /// [Category("Control Resizing")] [Description("Occurs when a separator is used to resize an auto hidden dockspace.")] public event EventHandler? AutoHiddenSeparatorResize; /// - /// Occurs when a separator is used to resize a docked dockspace. + /// Raised when the user finishes resizing a docked dockspace via a separator. /// [Category("Control Resizing")] [Description("Occurs when a separator is used to resize a docked dockspace.")] public event EventHandler? DockspaceSeparatorResize; /// - /// Occurs when a new auto hidden group is being added. + /// Raised when an auto hidden group element is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new auto hidden group is being added.")] public event EventHandler? AutoHiddenGroupAdding; /// - /// Occurs when an existing auto hidden group is being removed. + /// Raised when an auto hidden group element is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing auto hidden group is being removed.")] public event EventHandler? AutoHiddenGroupRemoved; /// - /// Occurs when a new panel for hosting auto hidden groups is being added. + /// Raised when a panel that hosts auto hidden groups is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new panel for hosting auto hidden groups is being added.")] public event EventHandler? AutoHiddenGroupPanelAdding; /// - /// Occurs when an existing panel for hosting auto hidden groups is being removed. + /// Raised when a panel that hosts auto hidden groups is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing panel for hosting auto hidden groups is being removed.")] public event EventHandler? AutoHiddenGroupPanelRemoved; /// - /// Occurs when a new dockable workspace control is being added. + /// Raised when a dockable workspace control is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new dockable workspace control is being addd.")] public event EventHandler? DockableWorkspaceAdded; /// - /// Occurs when an existing dockable workspace control is being removed. + /// Raised when a dockable workspace control is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing dockable workspace control is being removed.")] public event EventHandler? DockableWorkspaceRemoved; /// - /// Occurs when a new dockable navigator control is being added. + /// Raised when a dockable navigator control is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new dockable navigator control is being addd.")] public event EventHandler? DockableNavigatorAdded; /// - /// Occurs when an existing dockable navigator control is being removed. + /// Raised when a dockable navigator control is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing dockable navigator control is being removed.")] public event EventHandler? DockableNavigatorRemoved; /// - /// Occurs when a new dockable workspace control cell is being added. + /// Raised when a dockable workspace cell is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new dockable workspace control cell is being added.")] public event EventHandler? DockableWorkspaceCellAdding; /// - /// Occurs when an existing dockable workspace control cell is being removed. + /// Raised when a dockable workspace cell is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing dockable workspace control cell is being removed.")] public event EventHandler? DockableWorkspaceCellRemoved; /// - /// Occurs when a new dockspace control is being added. + /// Raised when a dockspace control is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new dockspace control is being added.")] public event EventHandler? DockspaceAdding; /// - /// Occurs when an existing dockspace control is being removed. + /// Raised when a dockspace control is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing dockspace control is being removed.")] public event EventHandler? DockspaceRemoved; /// - /// Occurs when a new dockspace control cell is being added. + /// Raised when a dockspace cell is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new dockspace control cell is being added.")] public event EventHandler? DockspaceCellAdding; /// - /// Occurs when an existing dockspace control cell is being removed. + /// Raised when a dockspace cell is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing dockspace control cell is being removed.")] public event EventHandler? DockspaceCellRemoved; /// - /// Occurs when a new dockspace separator control is being added. + /// Raised when a dockspace separator control is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new dockspace separator control is being added.")] public event EventHandler? DockspaceSeparatorAdding; /// - /// Occurs when an existing dockspace separator control is being removed. + /// Raised when a dockspace separator control is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing dockspace separator control is being removed.")] public event EventHandler? DockspaceSeparatorRemoved; /// - /// Occurs when a new floatspace control is being added. + /// Raised when a floatspace control is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new floatspace control is being added.")] public event EventHandler? FloatspaceAdding; /// - /// Occurs when an existing floatspace control is being removed. + /// Raised when a floatspace control is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing floatspace control is being removed.")] public event EventHandler? FloatspaceRemoved; /// - /// Occurs when a new floatspace control cell is being added. + /// Raised when a floatspace cell is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new floatspace control cell is being added.")] public event EventHandler? FloatspaceCellAdding; /// - /// Occurs when an existing floatspace control cell is being removed. + /// Raised when a floatspace cell is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing floatspace control cell is being removed.")] public event EventHandler? FloatspaceCellRemoved; /// - /// Occurs when a new floating window is being added. + /// Raised when a floating window is inserted into the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when a new floating window is being added.")] public event EventHandler? FloatingWindowAdding; /// - /// Occurs when an existing floating window is being removed. + /// Raised when a floating window is removed from the docking hierarchy. /// [Category("Control Adding/Removed")] [Description("Occurs when an existing floating window is being removed.")] public event EventHandler? FloatingWindowRemoved; /// - /// Occurs when an auto hidden page showing state changes. + /// Raised when an auto-hidden page transitions between shown and hidden states. /// [Category("State Changed")] [Description("Occurs when an auto hidden page showing state changes.")] public event EventHandler? AutoHiddenShowingStateChanged; /// - /// Occurs when a drag drop operation has ended with success. + /// Raised when an in-progress docking drag-drop operation completes successfully. /// [Category(@"Docking")] [Description("Occurs when a drag drop operation has ended with success.")] public event EventHandler? DoDragDropEnd; /// - /// Occurs when a drag drop operation has been quit. + /// Raised when an in-progress docking drag-drop operation is canceled. /// [Category(@"Docking")] [Description("Occurs when a drag drop operation has been quit.")] @@ -319,7 +319,7 @@ public class KryptonDockingManager : DockingElementOpenCollection #region Identity /// - /// Initialize a new instance of the KryptonDockingManager class. + /// Creates a docking manager named DockingManager with default close behavior and display strings initialized. /// public KryptonDockingManager() : this(nameof(DockingManager)) @@ -327,7 +327,7 @@ public KryptonDockingManager() } /// - /// Initialize a new instance of the KryptonDockingManager class. + /// Creates a docking manager with the specified element name and default close behavior. /// /// Initial name of the element. public KryptonDockingManager(string name) @@ -339,34 +339,34 @@ public KryptonDockingManager(string name) #region Public /// - /// Manage auto hidden/docked capabilities for provided control. + /// Adds a for the control to enable auto-hidden and docked docking. /// /// Reference to control instance. - /// KryptonDockingControl instance created. + /// The new element added to the hierarchy. public KryptonDockingControl ManageControl(Control c) => ManageControl(nameof(Control), c); /// - /// Manage auto hidden/docked capabilities for provided control. + /// Adds a for the control and inner navigator to enable auto-hidden and docked docking. /// /// Reference to control instance. /// Reference to docking navigator that is inside the control. - /// KryptonDockingControl instance created. + /// The new element added to the hierarchy. public KryptonDockingControl ManageControl(Control c, KryptonDockingNavigator navigator) => ManageControl(nameof(Control), c, navigator); /// - /// Manage auto hidden/docked capabilities for provided control. + /// Adds a for the control and inner workspace to enable auto-hidden and docked docking. /// /// Reference to control instance. /// Reference to docking workspace that is inside the control. - /// KryptonDockingControl instance created. + /// The new element added to the hierarchy. public KryptonDockingControl ManageControl(Control c, KryptonDockingWorkspace workspace) => ManageControl(nameof(Control), c, workspace); /// - /// Manage auto hidden/docked capabilities for provided control. + /// Creates and adds a for the control to enable auto-hidden and docked docking. /// /// Name for new docking element. /// Reference to control instance. - /// KryptonDockingControl instance created. + /// The new element added to the hierarchy. public KryptonDockingControl ManageControl(string name, Control c) { var dockingControl = new KryptonDockingControl(name, c); @@ -375,12 +375,12 @@ public KryptonDockingControl ManageControl(string name, Control c) } /// - /// Manage auto hidden/docked capabilities for provided control. + /// Creates and adds a linked to the control and inner navigator. /// /// Name for new docking element. /// Reference to control instance. /// Reference to docking navigator that is inside the control. - /// KryptonDockingControl instance created. + /// The new element added to the hierarchy. public KryptonDockingControl ManageControl(string name, Control c, KryptonDockingNavigator navigator) { var dockingControl = new KryptonDockingControl(name, c, navigator); @@ -389,12 +389,12 @@ public KryptonDockingControl ManageControl(string name, Control c, KryptonDockin } /// - /// Manage auto hidden/docked capabilities for provided control. + /// Creates and adds a linked to the control and inner workspace. /// /// Name for new docking element. /// Reference to control instance. /// Reference to docking workspace that is inside the control. - /// KryptonDockingControl instance created. + /// The new element added to the hierarchy. public KryptonDockingControl ManageControl(string name, Control c, KryptonDockingWorkspace workspace) { var dockingControl = new KryptonDockingControl(name, c, workspace); @@ -403,18 +403,18 @@ public KryptonDockingControl ManageControl(string name, Control c, KryptonDockin } /// - /// Manage floating windows capability for provided form. + /// Adds a element for the form to enable floating-window docking. /// /// Reference to form. - /// KryptonDockingFloating instance created. + /// The new element added to the hierarchy. public KryptonDockingFloating ManageFloating(Form f) => ManageFloating(@"Floating", f); /// - /// Manage floating windows capability for provided form. + /// Creates and adds a element for the form to enable floating-window docking. /// /// Name for new docking element. /// Reference to form. - /// KryptonDockingFloating instance created. + /// The new element added to the hierarchy. public KryptonDockingFloating ManageFloating(string name, Form f) { var dockingFloating = new KryptonDockingFloating(name, f); @@ -423,27 +423,27 @@ public KryptonDockingFloating ManageFloating(string name, Form f) } /// - /// Manage docking capability for provided dockable workspace control. + /// Adds a element for the dockable workspace to enable tabbed-document docking. /// /// Reference to dockable workspace. - /// KryptonDockingWorkspace instance created. + /// The new element added to the hierarchy. public KryptonDockingWorkspace ManageWorkspace(KryptonDockableWorkspace w) => ManageWorkspace(nameof(Workspace), @"Filler", w); /// - /// Manage docking capability for provided dockable workspace control. + /// Adds a element for the dockable workspace using the specified element name. /// /// Name for new docking element. /// Reference to dockable workspace. - /// KryptonDockingWorkspace instance created. + /// The new element added to the hierarchy. public KryptonDockingWorkspace ManageWorkspace(string name, KryptonDockableWorkspace w) => ManageWorkspace(name, @"Filler", w); /// - /// Manage docking capability for provided dockable workspace control. + /// Creates and adds a element for the dockable workspace with the given store name. /// /// Name for new docking element. /// Store name for docking element. /// Reference to dockable workspace. - /// KryptonDockingWorkspace instance created. + /// The new element added to the hierarchy. public KryptonDockingWorkspace ManageWorkspace(string name, string storeName, KryptonDockableWorkspace w) { var dockingWorkspace = new KryptonDockingWorkspace(name, storeName, w); @@ -452,27 +452,27 @@ public KryptonDockingWorkspace ManageWorkspace(string name, string storeName, Kr } /// - /// Manage docking capability for provided dockable navigator control. + /// Adds a element for the dockable navigator to enable tabbed-document docking. /// /// Reference to dockable navigator. - /// KryptonDockingNavigator instance created. + /// The new element added to the hierarchy. public KryptonDockingNavigator ManageNavigator(KryptonDockableNavigator n) => ManageNavigator(nameof(Navigator), @"Filler", n); /// - /// Manage docking capability for provided dockable navigator control. + /// Adds a element for the dockable navigator using the specified element name. /// /// Name for new docking element. /// Reference to dockable navigator. - /// KryptonDockingNavigator instance created. + /// The new element added to the hierarchy. public KryptonDockingNavigator ManageNavigator(string name, KryptonDockableNavigator n) => ManageNavigator(name, @"Filler", n); /// - /// Manage docking capability for provided dockable navigator control. + /// Creates and adds a element for the dockable navigator with the given store name. /// /// Name for new docking element. /// Store name for docking element. /// Reference to dockable navigator. - /// KryptonDockingNavigator instance created. + /// The new element added to the hierarchy. public KryptonDockingNavigator ManageNavigator(string name, string storeName, KryptonDockableNavigator n) { var dockingNavigator = new KryptonDockingNavigator(name, storeName, n); @@ -481,7 +481,7 @@ public KryptonDockingNavigator ManageNavigator(string name, string storeName, Kr } /// - /// Gets access to the set of display strings required of the docking hierarchy display elements. + /// Display strings used by docking hierarchy UI elements. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public DockingManagerStrings Strings { get; private set; } @@ -510,7 +510,7 @@ public KryptonDockingNavigator ManageNavigator(string name, string storeName, Kr } /// - /// Show all display elements of the provided page. + /// Shows the page by propagating ShowPages for its unique name. /// /// Reference to page that should be shown. public void ShowPage([DisallowNull] KryptonPage page) @@ -525,7 +525,7 @@ public void ShowPage([DisallowNull] KryptonPage page) } /// - /// Show all display elements of the provided page. + /// Shows the page by propagating ShowPages for the unique name. /// /// Unique name of the page that should be shown. public void ShowPage([DisallowNull] string uniqueName) @@ -540,7 +540,7 @@ public void ShowPage([DisallowNull] string uniqueName) } /// - /// Show all display elements of the provided pages. + /// Resolves page unique names and propagates ShowPages through the docking hierarchy. /// /// Array of references to pages that should be shown. public void ShowPages([DisallowNull] KryptonPage[] pages) @@ -570,7 +570,7 @@ public void ShowPages([DisallowNull] KryptonPage[] pages) } /// - /// Show all display elements of the provided pages. + /// Propagates ShowPages through the docking hierarchy within a scope. /// /// Array of unique names of the pages that should be shown. public void ShowPages([DisallowNull] string[] uniqueNames) @@ -603,7 +603,7 @@ public void ShowPages([DisallowNull] string[] uniqueNames) } /// - /// Show all display elements of all pages. + /// Propagates ShowAllPages through the docking hierarchy within a scope. /// public void ShowAllPages() { @@ -612,7 +612,7 @@ public void ShowAllPages() } /// - /// Hide all display elements of the provided page. + /// Hides the page by propagating HidePages for its unique name. /// /// Reference to page that should be hidden. public void HidePage([DisallowNull] KryptonPage page) @@ -627,7 +627,7 @@ public void HidePage([DisallowNull] KryptonPage page) } /// - /// Hide all display elements of the provided page. + /// Hides the page by propagating HidePages for the unique name. /// /// Unique name of the page that should be hidden. public void HidePage([DisallowNull] string uniqueName) @@ -645,7 +645,7 @@ public void HidePage([DisallowNull] string uniqueName) } /// - /// Hide all display elements of the provided pages. + /// Resolves page unique names and propagates HidePages through the docking hierarchy. /// /// Array of references to pages that should be hidden. public void HidePages([DisallowNull] KryptonPage[] pages) @@ -676,7 +676,7 @@ public void HidePages([DisallowNull] KryptonPage[] pages) } /// - /// Hide all display elements of the provided pages. + /// Propagates HidePages through the docking hierarchy within a scope. /// /// Array of unique names of the pages that should be hidden. public void HidePages([DisallowNull] string[] uniqueNames) @@ -709,7 +709,7 @@ public void HidePages([DisallowNull] string[] uniqueNames) } /// - /// Hide all display elements of all pages. + /// Propagates HideAllPages through the docking hierarchy within a scope. /// public void HideAllPages() { @@ -760,7 +760,7 @@ public bool IsPageShowing([DisallowNull] string uniqueName) } /// - /// Remove the referenced page. + /// Removes the page from the hierarchy by propagating RemovePages or RemoveAndDisposePages for its unique name. /// /// Reference to page that should be removed. /// Should the page be disposed when removed. @@ -776,7 +776,7 @@ public void RemovePage([DisallowNull] KryptonPage page, bool disposePage) } /// - /// Remove the named page. + /// Removes the named page from the hierarchy by propagating RemovePages or RemoveAndDisposePages. /// /// Unique name of the page that should be removed. /// Should the page be disposed when removed. @@ -798,7 +798,7 @@ public void RemovePage([DisallowNull] string uniqueName, bool disposePage) } /// - /// Remove the referenced pages. + /// Resolves page unique names and propagates page removal through the docking hierarchy. /// /// Array of references to pages that should be removed. /// Should the page be disposed when removed. @@ -830,7 +830,7 @@ public void RemovePages([DisallowNull] KryptonPage[] pages, bool disposePage) } /// - /// Remove the named pages. + /// Propagates RemovePages or RemoveAndDisposePages through the docking hierarchy within a scope. /// /// Array of unique names of the pages that should be removed. /// Should the page be disposed when removed. @@ -865,7 +865,7 @@ public void RemovePages([DisallowNull] string[] uniqueNames, bool disposePage) } /// - /// Remove all pages. + /// Propagates RemoveAllPages or RemoveAndDisposeAllPages through the docking hierarchy within a scope. /// /// Should the page be disposed when removed. public void RemoveAllPages(bool disposePage) @@ -918,10 +918,10 @@ public bool ContainsPage([DisallowNull] string uniqueName) } /// - /// Find the page reference that has the requested unique name. + /// Searches the docking hierarchy for a page with the requested unique name. /// /// Unique name of page that should be found. - /// Reference to page if the named page exists in the docking hierarchy; otherwise false. + /// Reference to the page when it exists in the hierarchy; otherwise null. public KryptonPage? PageForUniqueName([DisallowNull] string uniqueName) { // Cannot find a null reference @@ -941,7 +941,7 @@ public bool ContainsPage([DisallowNull] string uniqueName) } /// - /// Replace named page with a store placeholder so it can be restored at a later time. + /// Replaces the page with a store placeholder by propagating StorePages for its unique name. /// /// Reference to page that should be replaced. public void StorePage([DisallowNull] KryptonPage page) @@ -956,7 +956,7 @@ public void StorePage([DisallowNull] KryptonPage page) } /// - /// Replace page with a store placeholder so it can be restored at a later time. + /// Replaces the named page with a store placeholder by propagating StorePages. /// /// Unique name of the page that should be replaced. public void StorePage([DisallowNull] string uniqueName) @@ -977,7 +977,7 @@ public void StorePage([DisallowNull] string uniqueName) } /// - /// Replace named pages with store placeholders so they can be restored at a later time. + /// Resolves page unique names and propagates StorePages through the docking hierarchy. /// /// Array of references to pages that should be replaced. public void StorePages([DisallowNull] KryptonPage[] pages) @@ -1008,7 +1008,7 @@ public void StorePages([DisallowNull] KryptonPage[] pages) } /// - /// Replace pages with store placeholders so they can be restored at a later time. + /// Propagates StorePages through the docking hierarchy within a scope. /// /// Array of unique names of the pages that should be replaced. public void StorePages([DisallowNull] string[] uniqueNames) @@ -1041,7 +1041,7 @@ public void StorePages([DisallowNull] string[] uniqueNames) } /// - /// Replace all pages with store placeholders so they can be restored at a later time. + /// Propagates StoreAllPages through the docking hierarchy within a scope. /// public void StoreAllPages() { @@ -1050,9 +1050,9 @@ public void StoreAllPages() } /// - /// Clear away any store pages for the provided pages. + /// Clears store placeholders for the specified pages by propagating ClearStoredPages. /// - /// Array of references to pages that should be shown. + /// Array of references to pages whose store placeholders should be cleared. public void ClearStoredPages([DisallowNull] KryptonPage[] pages) { // Cannot show a null reference @@ -1080,9 +1080,9 @@ public void ClearStoredPages([DisallowNull] KryptonPage[] pages) } /// - /// Clear away any store pages for the provided unique named pages. + /// Propagates ClearStoredPages through the docking hierarchy within a scope. /// - /// Array of unique names of the pages that should have store pages removed. + /// Array of unique names of the pages whose store placeholders should be cleared. public void ClearStoredPages([DisallowNull] string[] uniqueNames) { // Cannot clear a null reference @@ -1116,7 +1116,7 @@ public void ClearStoredPages([DisallowNull] string[] uniqueNames) } /// - /// Cleat away all store pages. + /// Propagates ClearAllStoredPages through the docking hierarchy within a scope. /// public void ClearAllStoredPages() { @@ -1125,10 +1125,11 @@ public void ClearAllStoredPages() } /// - /// Find the docking location of the provided page. + /// Delegates to using .. /// - /// Reference to page. - /// Enumeration value indicating docking location. + /// Page whose docking location is requested. + /// The docking location reported by the hierarchy. + /// is . public DockingLocation FindPageLocation([DisallowNull] KryptonPage? page) { // Cannot find a null reference @@ -1138,10 +1139,12 @@ public DockingLocation FindPageLocation([DisallowNull] KryptonPage? page) } /// - /// Find the docking location of the named page. + /// Searches the docking hierarchy for a non-placeholder page with and returns its location. /// - /// Unique name of the page. - /// Enumeration value indicating docking location. + /// Unique name of the page to locate. + /// The docking location reported by a child element, or when absent. + /// is or whitespace. + /// is empty. public override DockingLocation FindPageLocation([DisallowNull] string uniqueName) { // Cannot replace a null reference @@ -1161,10 +1164,11 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find the docking element that contains the provided page. + /// Delegates to using .. /// - /// Reference to page. - /// IDockingElement reference if page is found; otherwise null. + /// Page whose owning element is requested. + /// The element that hosts the page, or when not found. + /// is . public IDockingElement? FindPageElement([DisallowNull] KryptonPage page) { // Cannot find a null reference @@ -1174,10 +1178,12 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find the docking element that contains the named page. + /// Searches the docking hierarchy for the element that hosts a non-placeholder page with . /// - /// Unique name of the page. - /// IDockingElement reference if page is found; otherwise null. + /// Unique name of the page to locate. + /// The owning element, or when no child contains the page. + /// is or whitespace. + /// is empty. public override IDockingElement? FindPageElement([DisallowNull] string uniqueName) { // Cannot replace a null reference @@ -1197,11 +1203,12 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find the docking element that contains the location specific store page for the named page. + /// Delegates to using .. /// - /// Location to be searched. - /// Reference to page. - /// IDockingElement reference if store page is found; otherwise null. + /// Docking location where the store placeholder should exist. + /// Page whose store placeholder is sought. + /// The element holding the store page, or when not found. + /// is . public IDockingElement? FindStorePageElement(DockingLocation location, [DisallowNull] KryptonPage page) { // Cannot find a null reference @@ -1211,11 +1218,13 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find the docking element that contains the location specific store page for the named page. + /// Searches the hierarchy for a store placeholder for at . /// - /// Location to be searched. - /// Unique name of the page to be found. - /// IDockingElement reference if store page is found; otherwise null. + /// Docking location where the store placeholder should exist. + /// Unique name of the stored page. + /// The element holding the store page, or when not found. + /// is or whitespace. + /// is empty. public override IDockingElement? FindStorePageElement(DockingLocation location, [DisallowNull] string uniqueName) { // Cannot replace a null reference @@ -1234,10 +1243,10 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find a floating docking element by searching the hierarchy. + /// Searches the hierarchy for a floating element that can host the named page, preferring an existing store page. /// /// Named page for which a suitable floating element is required. - /// KryptonDockingFloating reference if found; otherwise false. + /// reference if found; otherwise null. public override KryptonDockingFloating? FindDockingFloating(string uniqueName) { // First preference is to find an existing store page inside a floating element @@ -1251,10 +1260,10 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find a edge docked element by searching the hierarchy. + /// Searches the hierarchy for a docked edge element suitable for the named page. /// /// Named page for which a suitable docking edge element is required. - /// KryptonDockingEdgeDocked reference if found; otherwise false. + /// reference if found; otherwise null. public override KryptonDockingEdgeDocked? FindDockingEdgeDocked(string uniqueName) { // Try and find as an existing page inside the hierarchy @@ -1311,10 +1320,10 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find a edge auto hidden element by searching the hierarchy. + /// Searches the hierarchy for an auto-hidden edge element suitable for the named page. /// /// Named page for which a suitable auto hidden edge element is required. - /// KryptonDockingEdgeAutoHidden reference if found; otherwise false. + /// reference if found; otherwise null. public override KryptonDockingEdgeAutoHidden? FindDockingEdgeAutoHidden(string uniqueName) { // Try and find as an existing page inside the hierarchy @@ -1371,10 +1380,10 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Find a workspace element by searching the hierarchy. + /// Searches the hierarchy for a workspace element that can host the named page, preferring an existing store page. /// /// Named page for which a suitable workspace element is required. - /// KryptonDockingWorkspace reference if found; otherwise false. + /// reference if found; otherwise null. public override KryptonDockingWorkspace? FindDockingWorkspace(string uniqueName) { // First preference is to find an existing store page inside a workspace element @@ -1388,13 +1397,13 @@ public override DockingLocation FindPageLocation([DisallowNull] string uniqueNam } /// - /// Gets and sets the default request action to use for a close. + /// Default close action supplied to when runs. /// [DefaultValue(typeof(DockingCloseRequest), "HidePage")] public DockingCloseRequest DefaultCloseRequest { get; set; } /// - /// Perform the close request for a set of named pages. + /// For each unique name, raises then applies hide, remove, or dispose per the resolved close action within a scope. /// /// Array of unique names that need action performed. public virtual void CloseRequest([DisallowNull] IReadOnlyList uniqueNames) @@ -1454,7 +1463,7 @@ public virtual void CloseRequest([DisallowNull] IReadOnlyList uniqueName } /// - /// Make the named page auto hidden. + /// Moves the named page to auto-hidden layout when present and not already auto-hidden, raising first. /// /// Unique name of page to become auto hidden. public virtual void MakeAutoHiddenRequest([DisallowNull] string uniqueName) @@ -1519,7 +1528,7 @@ public virtual void MakeAutoHiddenRequest([DisallowNull] string uniqueName) } /// - /// Make the named page docked. + /// Moves the named page to docked layout when present and not already docked, raising first. /// /// Unique name of page to become docked. public virtual void MakeDockedRequest([DisallowNull] string uniqueName) @@ -1592,7 +1601,7 @@ public virtual void MakeDockedRequest([DisallowNull] string uniqueName) } /// - /// Make the named page floating. + /// Moves the named page to a floating window when present and not already floating, raising first. /// /// Unique name of page to become floating. public virtual void MakeFloatingRequest([DisallowNull] string uniqueName) @@ -1667,7 +1676,7 @@ public virtual void MakeFloatingRequest([DisallowNull] string uniqueName) } /// - /// Make the named page workspace tabbed. + /// Moves the named page to workspace tabbed layout when present and not already workspace-hosted, raising first. /// /// Unique name of page to become workspace tabbed. public virtual void MakeWorkspaceRequest([DisallowNull] string uniqueName) @@ -1736,7 +1745,7 @@ public virtual void MakeWorkspaceRequest([DisallowNull] string uniqueName) } /// - /// Make the named page navigator tabbed. + /// Moves the named page to navigator tabbed layout when present and not already navigator-hosted, raising first. /// /// Unique name of page to become navigator tabbed. public virtual void MakeNavigatorRequest([DisallowNull] string uniqueName) @@ -1809,11 +1818,11 @@ public virtual void MakeNavigatorRequest([DisallowNull] string uniqueName) } /// - /// Populate a context menu appropriate for a non-dockable workspace provided page. + /// Builds default docking context-menu items for the page and raises before display. /// /// Reference to page. /// Reference to context menu. - /// True if the context menu should be displayed; otherwise false. + /// true when the menu should be displayed; otherwise false. public virtual bool ShowPageContextMenuRequest([DisallowNull] KryptonPage? page, [DisallowNull] KryptonContextMenu kcm) { // Cannot action a null reference @@ -2150,10 +2159,10 @@ public virtual bool ShowPageContextMenuRequest([DisallowNull] KryptonPage? page, } /// - /// Perform a switch from floating to docked for the named pages. + /// Switches floating pages to docked layout, storing placeholders and restoring or appending to dockspaces. /// /// Unique name of floating pages that need switching. - /// KryptonDockingDockspace reference if a new dockspace needed to be created; otherwise false. + /// Always returns null. public virtual KryptonDockingDockspace? SwitchFloatingToDockedRequest([DisallowNull] string[] uniqueNames) { // Cannot action a null reference @@ -2295,7 +2304,7 @@ public virtual bool ShowPageContextMenuRequest([DisallowNull] KryptonPage? page, /// Perform a switch from floating to new floating window for the named pages. /// /// Unique name of floating pages that need switching. - /// KryptonDockingFloatingWindow reference on success; otherwise false. + /// reference on success; otherwise null. public virtual KryptonDockingFloatingWindow? SwitchFloatingToFloatingWindowRequest([DisallowNull] IReadOnlyList uniqueNames) { // Cannot action a null reference @@ -2399,7 +2408,7 @@ public virtual bool ShowPageContextMenuRequest([DisallowNull] KryptonPage? page, /// Perform a switch from auto hidden group to docked cell for the visible pages inside the group. /// /// Unique name of page inside auto hidden group that needs switching. - /// KryptonDockingDockspace reference if a new dockspace needed to be created; otherwise false. + /// reference when a new dockspace is created for pages that cannot be restored; otherwise null. public virtual KryptonDockingDockspace? SwitchAutoHiddenGroupToDockedCellRequest([DisallowNull] string uniqueName) { // Cannot switch a null reference @@ -3016,7 +3025,7 @@ public virtual KryptonDockingAutoHiddenGroup InsertAutoHiddenGroup(string path, } /// - /// Generate an implementation of the IDragPageNotify class that will be used to handle the drag/drop operation. + /// Starts a docking drag-drop operation for the specified pages at the given screen position. /// /// Screen point of the mouse for the drag operation. /// Offset from top left of element causing the drag. @@ -3160,7 +3169,7 @@ page is not KryptonStorePage } /// - /// Generate an implementation of the IDragPageNotify class that will be used to handle the drag/drop operation. + /// Starts a docking drag-drop operation for visible pages in the floating window at the given screen position. /// /// Screen point of the mouse for the drag operation. /// Offset from top left of element causing the drag. @@ -3277,7 +3286,7 @@ public void SaveConfigToStream(Stream stream, Encoding encoding) } /// - /// Saves docking configuration information using a provider xml writer. + /// Writes the docking hierarchy and global data to XML, raising for custom global content. /// /// Xml writer object. public void SaveConfigToXml(XmlWriter xmlWriter) @@ -3381,7 +3390,7 @@ public void LoadConfigFromStream(Stream stream) } /// - /// Loads docking configuration information using the provided xml reader. + /// Rebuilds the docking hierarchy from XML, raising , , and as needed. /// /// Xml reader object. public void LoadConfigFromXml(XmlReader xmlReader) @@ -3520,7 +3529,7 @@ public void LoadConfigFromXml(XmlReader xmlReader) } /// - /// Gets an array of all the pages inside the docking hierarchy. + /// Snapshot of all pages collected by propagating a page-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonPage[] Pages @@ -3534,7 +3543,7 @@ public virtual KryptonPage[] Pages } /// - /// Gets an array of all the pages docked inside the docking hierarchy. + /// Snapshot of docked pages collected by propagating a page-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonPage[] PagesDocked @@ -3548,7 +3557,7 @@ public virtual KryptonPage[] PagesDocked } /// - /// Gets an array of all the pages auto hidden inside the docking hierarchy. + /// Snapshot of auto-hidden pages collected by propagating a page-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonPage[] PagesAutoHidden @@ -3562,7 +3571,7 @@ public virtual KryptonPage[] PagesAutoHidden } /// - /// Gets an array of all the pages floating inside the docking hierarchy. + /// Snapshot of floating pages collected by propagating a page-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonPage[] PagesFloating @@ -3576,7 +3585,7 @@ public virtual KryptonPage[] PagesFloating } /// - /// Gets an array of all the pages inside a dockable workspace inside the docking hierarchy. + /// Snapshot of workspace pages collected by propagating a page-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonPage[] PagesWorkspace @@ -3590,7 +3599,7 @@ public virtual KryptonPage[] PagesWorkspace } /// - /// Gets an array of all the cells inside the docking hierarchy. + /// Snapshot of all workspace cells collected by propagating a cell-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonWorkspaceCell[] Cells @@ -3604,7 +3613,7 @@ public virtual KryptonWorkspaceCell[] Cells } /// - /// Gets an array of all the cells docked inside the docking hierarchy. + /// Snapshot of docked workspace cells collected by propagating a cell-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonWorkspaceCell[] CellsDocked @@ -3618,7 +3627,7 @@ public virtual KryptonWorkspaceCell[] CellsDocked } /// - /// Gets an array of all the cells floating inside the docking hierarchy. + /// Snapshot of floating workspace cells collected by propagating a cell-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonWorkspaceCell[] CellsFloating @@ -3632,7 +3641,7 @@ public virtual KryptonWorkspaceCell[] CellsFloating } /// - /// Gets an array of all the cells inside a dockable workspace inside the docking hierarchy. + /// Snapshot of workspace cells inside dockable workspaces collected by propagating a cell-list query through the hierarchy. /// [Browsable(false)] public virtual KryptonWorkspaceCell[] CellsWorkspace @@ -3646,10 +3655,10 @@ public virtual KryptonWorkspaceCell[] CellsWorkspace } /// - /// Return the cell the page belongs to, when available (JDH Software add) + /// Returns the workspace cell containing the page when it is docked, floating, or in a workspace; otherwise null. /// - /// The uniqueName of the page. - /// The KryptonWorkspaceCell. + /// Unique name of the page. + /// The containing when found; otherwise null. public KryptonWorkspaceCell? DockingCellForPage(string uniqueName) { //Action depends on current location of the page diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingNavigator.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingNavigator.cs index a5ff6fb2c6..d965574cb2 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingNavigator.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingNavigator.cs @@ -16,7 +16,7 @@ namespace Krypton.Docking; /// -/// Provides docking functionality by attaching to an existing KryptonDockableNavigator +/// Docking element bound to a that hosts pages as navigator tabs. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -30,7 +30,7 @@ public class KryptonDockingNavigator : DockingElementClosedCollection #region Identity /// - /// Initialize a new instance of the KryptonDockingNavigator class. + /// Delegates to the three-parameter constructor with store name Workspace and a new . /// /// Initial name of the element. public KryptonDockingNavigator(string name) @@ -39,11 +39,12 @@ public KryptonDockingNavigator(string name) } /// - /// Initialize a new instance of the KryptonDockingNavigator class. + /// Attaches to and subscribes to page insert, drag, and drop events. /// /// Initial name of the element. - /// Name to use for storage pages. - /// Reference to navigator to manage. + /// Name used when creating store-page placeholders. + /// Dockable navigator control to host pages. + /// is . public KryptonDockingNavigator(string name, string storeName, KryptonDockableNavigator navigator) @@ -61,12 +62,12 @@ public KryptonDockingNavigator(string name, #region Public /// - /// Gets the control this element is managing. + /// Dockable navigator control that hosts this element's pages. /// public KryptonDockableNavigator DockableNavigatorControl { get; } /// - /// Gets and sets access to the parent docking element. + /// When assigned, raises DockableNavigatorAdded on the docking manager when one is reachable. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override IDockingElement? Parent @@ -87,17 +88,21 @@ public override IDockingElement? Parent } /// - /// Add a KryptonPage to the navigator. + /// Adds a single page to the navigator after verifying it is not already hosted in the hierarchy. /// - /// KryptonPage to be added. + /// Page to append. + /// The page is already present in the docking hierarchy. + /// No docking manager is attached to this subtree. public void Append(KryptonPage page) => // Use existing array adding method to prevent duplication of code Append(new[] { page }); /// - /// Add a KryptonPage array to the navigator. + /// Adds pages to the navigator after verifying they are not already hosted in the hierarchy, then updates navigator minimum size from page and bar metrics. /// - /// Array of KryptonPage instances to be added. + /// Pages to append; may be . + /// A page is already present in the docking hierarchy. + /// No docking manager is attached to this subtree. public void Append(KryptonPage[]? pages) { // Demand that pages are not already present @@ -136,9 +141,10 @@ public void Append(KryptonPage[]? pages) } /// - /// Show all display elements of the provided page. + /// Propagates a show request for the supplied page through the docking hierarchy inside a batched update. /// - /// Reference to page that should be shown. + /// Page whose display elements should become visible. + /// is . public void ShowPage(KryptonPage page) { // Cannot show a null reference @@ -151,9 +157,10 @@ public void ShowPage(KryptonPage page) } /// - /// Show all display elements of the provided page. + /// Propagates a show request for the named page through the docking hierarchy inside a batched update. /// - /// Unique name of the page that should be shown. + /// Unique name of the page whose display elements should become visible. + /// is null or whitespace. public void ShowPage([DisallowNull] string uniqueName) { // Cannot show a null reference @@ -166,9 +173,11 @@ public void ShowPage([DisallowNull] string uniqueName) } /// - /// Show all display elements of the provided pages. + /// Propagates a show request for the supplied pages through the docking hierarchy inside a batched update. /// - /// Array of references to pages that should be shown. + /// Pages whose display elements should become visible. + /// is . + /// contains a null entry. public void ShowPages(KryptonPage[] pages) { // Cannot show a null reference @@ -196,9 +205,11 @@ public void ShowPages(KryptonPage[] pages) } /// - /// Show all display elements of the provided pages. + /// Propagates a show request for the named pages through the docking hierarchy inside a batched update. /// - /// Array of unique names of the pages that should be shown. + /// Unique names of pages whose display elements should become visible. + /// is or contains a null entry. + /// contains an empty string. public void ShowPages([DisallowNull] string[] uniqueNames) { // Cannot show a null reference @@ -229,7 +240,7 @@ public void ShowPages([DisallowNull] string[] uniqueNames) } /// - /// Show all display elements of all pages. + /// Propagates a show-all request through the docking hierarchy inside a batched update. /// public void ShowAllPages() { @@ -238,9 +249,10 @@ public void ShowAllPages() } /// - /// Hide all display elements of the provided page. + /// Propagates a hide request for the supplied page through the docking hierarchy inside a batched update. /// - /// Reference to page that should be hidden. + /// Page whose display elements should be hidden. + /// is . public void HidePage(KryptonPage page) { // Cannot hide a null reference @@ -253,9 +265,10 @@ public void HidePage(KryptonPage page) } /// - /// Hide all display elements of the provided page. + /// Propagates a hide request for the named page through the docking hierarchy inside a batched update when is non-empty. /// - /// Unique name of the page that should be hidden. + /// Unique name of the page whose display elements should be hidden. + /// is . public void HidePage(string uniqueName) { // Cannot hide a null reference @@ -271,9 +284,11 @@ public void HidePage(string uniqueName) } /// - /// Hide all display elements of the provided pages. + /// Propagates a hide request for the supplied pages through the docking hierarchy inside a batched update. /// - /// Array of references to pages that should be hidden. + /// Pages whose display elements should be hidden. + /// is . + /// contains a null entry. public void HidePages(KryptonPage[] pages) { // Cannot hide a null reference @@ -302,9 +317,11 @@ public void HidePages(KryptonPage[] pages) } /// - /// Hide all display elements of the provided pages. + /// Propagates a hide request for the named pages through the docking hierarchy inside a batched update. /// - /// Array of unique names of the pages that should be hidden. + /// Unique names of pages whose display elements should be hidden. + /// is or contains a null entry. + /// contains an empty string. public void HidePages(string[] uniqueNames) { // Cannot hide a null reference @@ -335,7 +352,7 @@ public void HidePages(string[] uniqueNames) } /// - /// Hide all display elements of all pages. + /// Propagates a hide-all request through the docking hierarchy inside a batched update. /// public void HideAllPages() { @@ -344,10 +361,12 @@ public void HideAllPages() } /// - /// Remove the named page. + /// Propagates a remove request for the named page through the docking hierarchy inside a batched update. /// - /// Unique name of the page that should be removed. - /// Should the page be disposed when removed. + /// Unique name of the page to remove. + /// Whether removed pages should also be disposed. + /// is . + /// is empty. public void RemovePage(string uniqueName, bool disposePage) { // Cannot remove a null reference @@ -366,10 +385,12 @@ public void RemovePage(string uniqueName, bool disposePage) } /// - /// Remove the referenced pages. + /// Propagates a remove request for the supplied pages through the docking hierarchy inside a batched update. /// - /// Array of references to pages that should be removed. - /// Should the page be disposed when removed. + /// Pages to remove. + /// Whether removed pages should also be disposed. + /// is . + /// contains a null entry. public void RemovePages(KryptonPage[] pages, bool disposePage) { // Cannot remove a null reference @@ -398,10 +419,12 @@ public void RemovePages(KryptonPage[] pages, bool disposePage) } /// - /// Remove the named pages. + /// Propagates a remove request for the named pages through the docking hierarchy inside a batched update. /// - /// Array of unique names of the pages that should be removed. - /// Should the page be disposed when removed. + /// Unique names of pages to remove. + /// Whether removed pages should also be disposed. + /// is or contains a null entry. + /// contains an empty string. public void RemovePages(string[] uniqueNames, bool disposePage) { // Cannot remove a null reference @@ -433,9 +456,9 @@ public void RemovePages(string[] uniqueNames, bool disposePage) } /// - /// Remove all pages. + /// Propagates a remove-all request through the docking hierarchy inside a batched update. /// - /// Should the page be disposed when removed. + /// Whether removed pages should also be disposed. public void RemoveAllPages(bool disposePage) { // Remove all details about all pages from all parts of the hierarchy @@ -444,10 +467,11 @@ public void RemoveAllPages(bool disposePage) } /// - /// Propagates an action request down the hierarchy of docking elements. + /// Applies navigator-specific handling for loading, store-page, and debug actions, ignores selected global actions, then delegates remaining actions to the base implementation. /// - /// Action that is requested to be performed. - /// Array of unique names of the pages the action relates to. + /// Docking operation to forward. + /// Page unique names targeted by the action. + /// is for actions that require page names. public override void PropogateAction(DockingPropogateAction action, string[]? uniqueNames) { KryptonPageCollection pageCollection = DockableNavigatorControl.Pages; @@ -533,11 +557,11 @@ public override void PropogateAction(DockingPropogateAction action, string[]? un } /// - /// Propagates a boolean state request down the hierarchy of docking elements. + /// Answers , , and for navigator-hosted pages before delegating to the base implementation. /// - /// Boolean state that is requested to be recovered. - /// Unique name of the page the request relates to. - /// True/False if state is known; otherwise null indicating no information available. + /// Boolean query to resolve. + /// Unique name of the page the query concerns. + /// or when this navigator can answer; otherwise the base result. public override bool? PropogateBoolState(DockingPropogateBoolState state, string uniqueName) { switch (state) @@ -579,11 +603,11 @@ public override void PropogateAction(DockingPropogateAction action, string[]? un } /// - /// Propagates a page request down the hierarchy of docking elements. + /// Returns a non-placeholder navigator page for before delegating to the base implementation. /// - /// Request that should result in a page reference if found. - /// Unique name of the page the request relates to. - /// Reference to page that matches the request; otherwise null. + /// Page query to resolve. + /// Unique name of the page the query concerns. + /// The matching page when hosted here and not a store page; otherwise the base result. public override KryptonPage? PropogatePageState(DockingPropogatePageState state, string uniqueName) { if (state == DockingPropogatePageState.PageForUniqueName) @@ -601,10 +625,10 @@ public override void PropogateAction(DockingPropogateAction action, string[]? un } /// - /// Propagates a page list request down the hierarchy of docking elements. + /// Appends non-placeholder navigator pages to for and requests before delegating to the base implementation. /// - /// Request that should result in pages collection being modified. - /// Pages collection for modification by the docking elements. + /// Page-list query to resolve. + /// Collection to append matching pages into. public override void PropogatePageList(DockingPropogatePageList state, KryptonPageCollection pages) { switch (state) @@ -637,11 +661,11 @@ public override void PropogatePageList(DockingPropogatePageList state, KryptonPa } /// - /// Propagates a request for drag targets down the hierarchy of docking elements. + /// Appends navigator drag targets for dragged pages that allow navigator docking. /// - /// Reference to window being dragged. - /// Set of pages being dragged. - /// Collection of drag targets. + /// Floating window under drag, if any. + /// Pages under drag. + /// List to append candidate targets into. public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, PageDragEndData? dragData, DragTargetList targets) @@ -668,10 +692,10 @@ public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, } /// - /// Find the docking location of the named page. + /// Returns when a non-placeholder page with is hosted in this navigator. /// - /// Unique name of the page. - /// Enumeration value indicating docking location. + /// Unique name of the page to locate. + /// when the page is present; otherwise . public override DockingLocation FindPageLocation(string uniqueName) { KryptonPage? page = DockableNavigatorControl.Pages[uniqueName]; @@ -682,10 +706,10 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find the docking element that contains the named page. + /// Returns this element when a non-placeholder page with is hosted in this navigator. /// - /// Unique name of the page. - /// IDockingElement reference if page is found; otherwise null. + /// Unique name of the page to locate. + /// This element when the page is present; otherwise . public override IDockingElement? FindPageElement(string uniqueName) { KryptonPage? page = DockableNavigatorControl.Pages[uniqueName]; @@ -696,11 +720,11 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find the docking element that contains the location specific store page for the named page. + /// Returns this element when a store-page placeholder for exists at . /// - /// Location to be searched. - /// Unique name of the page to be found. - /// IDockingElement reference if store page is found; otherwise null. + /// Docking location to search. + /// Unique name of the page whose placeholder is sought. + /// This element when a matching store page is present; otherwise . public override IDockingElement? FindStorePageElement(DockingLocation location, string uniqueName) { if (location == DockingLocation.Navigator) @@ -716,21 +740,21 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find a navigator element by searching the hierarchy. + /// Always returns this element; the argument is not consulted. /// - /// Named page for which a suitable navigator element is required. - /// KryptonDockingNavigator reference if found; otherwise false. + /// Unique name of the page being located. + /// This element. public override KryptonDockingNavigator FindDockingNavigator(string uniqueName) => this; /// - /// Gets the number of visible pages. + /// Count of visible pages reported by the dockable navigator. /// public int VisiblePages => DockableNavigatorControl.Pages.VisibleCount; /// - /// Ensure the provided page is selected within the cell that contains it. + /// Sets the dockable navigator selected page when is present in its page collection. /// - /// Unique name to be selected. + /// Unique name of the page to select. public void SelectPage(string uniqueName) { // Check that the pages collection contains the named paged @@ -742,9 +766,9 @@ public void SelectPage(string uniqueName) } /// - /// Saves docking configuration information using a provider xml writer. + /// Writes navigator page entries and custom page data for pages that allow configuration save. /// - /// Xml writer object. + /// Destination XML writer. public override void SaveElementToXml(XmlWriter xmlWriter) { // Output navigator docking element @@ -775,10 +799,11 @@ public override void SaveElementToXml(XmlWriter xmlWriter) } /// - /// Loads docking configuration information using a provider xml reader. + /// Clears existing navigator pages and rebuilds layout from persisted page entries, raising page-loading events for custom data. /// - /// Xml reader object. - /// Collection of available pages for adding. + /// Source XML reader positioned at this element. + /// Pool of pages available to satisfy non-placeholder entries. + /// The XML structure or attributes do not match this element. public override void LoadElementFromXml(XmlReader xmlReader, KryptonPageCollection pages) { // Is it the expected xml element name? diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingSpace.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingSpace.cs index ed0e77243f..cb9098e673 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingSpace.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingSpace.cs @@ -16,7 +16,7 @@ namespace Krypton.Docking; /// -/// Base class for docking elements that manage a KryptonSpace derived class. +/// Abstract base for docking elements whose page layout is hosted in a -derived workspace control. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -44,17 +44,21 @@ protected KryptonDockingSpace(string name, string storeName) #region Public /// - /// Add a KryptonPage to the currently active cell or create a new cell is no cell is currently active. + /// Appends a page to the active workspace cell, or creates a root cell when none is active or the active cell has no pages. /// - /// KryptonPage to be added. + /// Page to append; must not already be present in the docking hierarchy. + /// No is attached to this subtree. + /// is already present in the docking hierarchy. public void Append(KryptonPage page) => // Use existing array adding method to prevent duplication of code Append(new[] { page }); /// - /// Add a KryptonPage array to the currently active cell or create a new cell is no cell is currently active. + /// Appends pages to the active workspace cell, or creates a root cell when none is active or the active cell has no pages. /// - /// Array of KryptonPage instances to be added. + /// Pages to append; ignored when . Each page must not already be present in the docking hierarchy. + /// No is attached to this subtree. + /// A page in is already present in the docking hierarchy. public void Append(KryptonPage[]? pages) { // Demand that pages are not already present @@ -112,19 +116,23 @@ private void ObserveAutoHiddenSlideSize(KryptonPage[] pages) } /// - /// Add a KryptonPage into an existing cell. + /// Appends a page to the end of an existing workspace cell in this space. /// - /// Reference to existing workspace cell. - /// KryptonPage instance to be added. + /// Target cell; must belong to this space's workspace. + /// Page to append. public void CellAppend(KryptonWorkspaceCell cell, KryptonPage page) => // Use existing array adding method to prevent duplication of code CellAppend(cell, new[] { page }); /// - /// Add a KryptonPage array into an existing cell. + /// Appends pages to the end of an existing workspace cell in this space. /// - /// Reference to existing workspace cell. - /// Array of KryptonPage instances to be added. + /// Target cell; must belong to this space's workspace. + /// Pages to append; ignored when . + /// No is attached to this subtree. + /// is . + /// is not contained in this space's workspace. + /// A page in is already present in the docking hierarchy. public void CellAppend(KryptonWorkspaceCell cell, KryptonPage[]? pages) { // Demand that pages are not already present @@ -162,21 +170,25 @@ public void CellAppend(KryptonWorkspaceCell cell, KryptonPage[]? pages) } /// - /// Add a KryptonPage array into an existing cell starting at the provided index. + /// Inserts a page into an existing workspace cell at the specified index. /// - /// Reference to existing workspace cell. - /// Index for inserting new pages. - /// KryptonPage instance to be added. + /// Target cell; must belong to this space's workspace. + /// Zero-based insertion index within the cell. + /// Page to insert. public void CellInsert(KryptonWorkspaceCell cell, int index, KryptonPage page) => // Use existing array adding method to prevent duplication of code CellInsert(cell, index, new[] { page }); /// - /// Add a KryptonPage array into an existing cell starting at the provided index. + /// Inserts pages into an existing workspace cell in sequence starting at the specified index. /// - /// Reference to existing workspace cell. - /// Index for inserting new pages. - /// Array of KryptonPage instances to be added. + /// Target cell; must belong to this space's workspace. + /// Zero-based insertion index for the first page. + /// Pages to insert; ignored when . + /// No is attached to this subtree. + /// is . + /// is not contained in this space's workspace. + /// A page in is already present in the docking hierarchy. public void CellInsert([DisallowNull] KryptonWorkspaceCell cell, int index, KryptonPage[]? pages) { // Demand that pages are not already present @@ -217,7 +229,7 @@ public void CellInsert([DisallowNull] KryptonWorkspaceCell cell, int index, Kryp } /// - /// Gets and sets access to the parent docking element. + /// Assigning a parent refreshes manager tooltip strings and raises cell-adding notifications for each workspace cell already in the space. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override IDockingElement? Parent @@ -241,10 +253,11 @@ public override IDockingElement? Parent } /// - /// Propagates an action request down the hierarchy of docking elements. + /// Executes workspace-level docking actions against contained cells and pages before continuing propagation to child elements. /// - /// Action that is requested to be performed. - /// Array of unique names of the pages the action relates to. + /// Docking action to apply within this space. + /// Unique names of pages targeted by the action; required for several values. + /// is for an action that requires page names. public override void PropogateAction(DockingPropogateAction action, string[]? uniqueNames) { if (SpaceControl == null) @@ -456,10 +469,10 @@ public override void PropogateAction(DockingPropogateAction action, string[]? un } /// - /// Propagates an action request down the hierarchy of docking elements. + /// Replaces matching store pages with supplied pages when the action is , then continues propagation. /// - /// Action that is requested to be performed. - /// Array of pages the action relates to. + /// Docking action to apply. + /// Pages used to restore placeholders. public override void PropogateAction(DockingPropogateAction action, KryptonPage[] pages) { if (action == DockingPropogateAction.RestorePages) @@ -481,11 +494,11 @@ public override void PropogateAction(DockingPropogateAction action, KryptonPage[ } /// - /// Propagates a boolean state request down the hierarchy of docking elements. + /// Answers workspace-specific boolean queries for page presence and visibility before delegating unmatched requests. /// - /// Boolean state that is requested to be recovered. - /// Unique name of the page the request relates to. - /// True/False if state is known; otherwise null indicating no information available. + /// Boolean query to resolve. + /// Unique name of the page the query targets. + /// or when this space can answer the query; otherwise . public override bool? PropogateBoolState(DockingPropogateBoolState state, string uniqueName) { switch (state) @@ -527,11 +540,11 @@ public override void PropogateAction(DockingPropogateAction action, KryptonPage[ } /// - /// Propagates a page request down the hierarchy of docking elements. + /// Returns a non-placeholder page matching the unique name when the request is . /// - /// Request that should result in a page reference if found. - /// Unique name of the page the request relates to. - /// Reference to page that matches the request; otherwise null. + /// Page query to resolve. + /// Unique name of the page to locate. + /// The matching page when found in this space; otherwise before delegating to child elements. public override KryptonPage? PropogatePageState(DockingPropogatePageState state, string uniqueName) { switch (state) @@ -553,10 +566,10 @@ public override void PropogateAction(DockingPropogateAction action, KryptonPage[ } /// - /// Propagates a page list request down the hierarchy of docking elements. + /// Adds non-placeholder pages from workspace cells to the supplied collection when the list scope matches this space type. /// - /// Request that should result in pages collection being modified. - /// Pages collection for modification by the docking elements. + /// Scope that selects which pages are collected. + /// Collection to receive matching pages. public override void PropogatePageList(DockingPropogatePageList state, KryptonPageCollection pages) { // If the request relevant to this space control? @@ -595,10 +608,10 @@ public override void PropogatePageList(DockingPropogatePageList state, KryptonPa } /// - /// Propagates a workspace cell list request down the hierarchy of docking elements. + /// Adds workspace cells from this space to the supplied collection when the cell-list scope matches this space type. /// - /// Request that should result in the cells collection being modified. - /// Cells collection for modification by the docking elements. + /// Scope that selects which cells are collected. + /// Collection to receive matching cells. public override void PropogateCellList(DockingPropogateCellList state, KryptonWorkspaceCellList cells) { var processCells = state switch @@ -625,15 +638,15 @@ public override void PropogateCellList(DockingPropogateCellList state, KryptonWo } /// - /// Gets the number of visible pages. + /// Number of pages currently marked visible in the workspace, excluding placeholders. /// public int VisiblePages => SpaceControl?.PageVisibleCount ?? 0; /// - /// Return an array of the visible pages that are inside the cell that contains the provided unique name. + /// Collects visible, non-placeholder pages from the workspace cell that contains the named page. /// - /// Unique name of page that is inside the target cell. - /// Array of page references. + /// Unique name of any page in the target cell. + /// Visible pages from that cell, or an empty array when the cell is not found. public KryptonPage[] CellVisiblePages(string uniqueName) { var pages = new List(); @@ -650,16 +663,17 @@ public KryptonPage[] CellVisiblePages(string uniqueName) } /// - /// Return the workspace cell that contains the named page. + /// Locates the workspace cell containing a page with the specified unique name. /// - /// Unique name for search. - /// Reference to KryptonWorkspaceCell if match found; otherwise null. + /// Unique name of the page to search for. + /// The containing cell when found; otherwise . public KryptonWorkspaceCell? CellForPage(string uniqueName) => SpaceControl?.CellForUniqueName(uniqueName); /// - /// Ensure the provided page is selected within the cell that contains it. + /// Selects the page with the specified unique name within its containing workspace cell. /// - /// Unique name to be selected. + /// Unique name of the page to select. + /// No change occurs when the named page is not found in this space. public void SelectPage(string uniqueName) { // Find the cell that contains the target named paged @@ -673,7 +687,7 @@ public void SelectPage(string uniqueName) } /// - /// Update the strings from the docking manager. + /// Copies close, auto-hide, and window-location tooltip text from the docking manager into the workspace control. /// public void UpdateStrings() { @@ -690,9 +704,9 @@ public void UpdateStrings() } /// - /// Saves docking configuration information using a provider xml writer. + /// Writes this space element and its workspace layout, including size and page structure, to XML. /// - /// Xml writer object. + /// XML writer that receives the serialized layout. public override void SaveElementToXml(XmlWriter xmlWriter) { // Output workspace based docking element @@ -718,10 +732,11 @@ public override void SaveElementToXml(XmlWriter xmlWriter) } /// - /// Loads docking configuration information using a provider xml reader. + /// Reads this space element and restores workspace layout from XML. /// - /// Xml reader object. - /// Collection of available pages for adding. + /// XML reader positioned at this element. + /// Available pages used to recreate layout content. + /// The XML element name, attributes, or child structure do not match the expected layout format. public override void LoadElementFromXml(XmlReader xmlReader, KryptonPageCollection pages) { // Is it the expected xml element name? diff --git a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingWorkspace.cs b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingWorkspace.cs index b12bf9b16e..6a25eb94e1 100644 --- a/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingWorkspace.cs +++ b/Source/Krypton Components/Krypton.Docking/Elements Impl/KryptonDockingWorkspace.cs @@ -16,7 +16,7 @@ namespace Krypton.Docking; /// -/// Provides docking functionality by attaching to an existing KryptonDockableWorkspace +/// Docking element bound to a that hosts pages in workspace cells. /// [ToolboxItem(false)] [DesignerCategory("code")] @@ -25,7 +25,7 @@ public class KryptonDockingWorkspace : KryptonDockingSpace { #region Identity /// - /// Initialize a new instance of the KryptonDockingWorkspace class. + /// Delegates to the three-parameter constructor with store name Workspace and a new . /// /// Initial name of the element. public KryptonDockingWorkspace(string name) @@ -34,11 +34,12 @@ public KryptonDockingWorkspace(string name) } /// - /// Initialize a new instance of the KryptonDockingWorkspace class. + /// Attaches to and subscribes to cell insert and page drag events. /// /// Initial name of the element. - /// Name to use for storage pages. - /// Reference to workspace to manage. + /// Name used when creating store-page placeholders. + /// Dockable workspace control to host pages. + /// is . public KryptonDockingWorkspace(string name, string storeName, [DisallowNull] KryptonDockableWorkspace workspace) @@ -56,12 +57,12 @@ public KryptonDockingWorkspace(string name, #region Public /// - /// Gets the control this element is managing. + /// Dockable workspace control hosted by this element, when is a workspace instance. /// public KryptonDockableWorkspace? DockableWorkspaceControl => SpaceControl as KryptonDockableWorkspace; /// - /// Gets and sets access to the parent docking element. + /// When assigned, raises DockableWorkspaceAdded on the docking manager when one is reachable. /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public override IDockingElement? Parent @@ -82,9 +83,10 @@ public override IDockingElement? Parent } /// - /// Show all display elements of the provided page. + /// Propagates a show request for the supplied page through the docking hierarchy inside a batched update. /// - /// Reference to page that should be shown. + /// Page whose display elements should become visible. + /// is . public void ShowPage([DisallowNull] KryptonPage page) { // Cannot show a null reference @@ -97,9 +99,10 @@ public void ShowPage([DisallowNull] KryptonPage page) } /// - /// Show all display elements of the provided page. + /// Propagates a show request for the named page through the docking hierarchy inside a batched update. /// - /// Unique name of the page that should be shown. + /// Unique name of the page whose display elements should become visible. + /// is . public void ShowPage([DisallowNull] string uniqueName) { // Cannot show a null reference @@ -112,9 +115,11 @@ public void ShowPage([DisallowNull] string uniqueName) } /// - /// Show all display elements of the provided pages. + /// Propagates a show request for the supplied pages through the docking hierarchy inside a batched update. /// - /// Array of references to pages that should be shown. + /// Pages whose display elements should become visible. + /// is . + /// contains a null entry. public void ShowPages([DisallowNull] KryptonPage[] pages) { // Cannot show a null reference @@ -142,9 +147,11 @@ public void ShowPages([DisallowNull] KryptonPage[] pages) } /// - /// Show all display elements of the provided pages. + /// Propagates a show request for the named pages through the docking hierarchy inside a batched update. /// - /// Array of unique names of the pages that should be shown. + /// Unique names of pages whose display elements should become visible. + /// is or contains a null entry. + /// contains an empty string. public void ShowPages([DisallowNull] string[] uniqueNames) { // Cannot show a null reference @@ -175,7 +182,7 @@ public void ShowPages([DisallowNull] string[] uniqueNames) } /// - /// Show all display elements of all pages. + /// Propagates a show-all request through the docking hierarchy inside a batched update. /// public void ShowAllPages() { @@ -184,9 +191,10 @@ public void ShowAllPages() } /// - /// Hide all display elements of the provided page. + /// Propagates a hide request for the supplied page through the docking hierarchy inside a batched update. /// - /// Reference to page that should be hidden. + /// Page whose display elements should be hidden. + /// is . public void HidePage([DisallowNull] KryptonPage page) { // Cannot hide a null reference @@ -199,9 +207,10 @@ public void HidePage([DisallowNull] KryptonPage page) } /// - /// Hide all display elements of the provided page. + /// Propagates a hide request for the named page through the docking hierarchy inside a batched update when is non-empty. /// - /// Unique name of the page that should be hidden. + /// Unique name of the page whose display elements should be hidden. + /// is . public void HidePage([DisallowNull] string uniqueName) { // Cannot hide a null reference @@ -217,9 +226,11 @@ public void HidePage([DisallowNull] string uniqueName) } /// - /// Hide all display elements of the provided pages. + /// Propagates a hide request for the supplied pages through the docking hierarchy inside a batched update. /// - /// Array of references to pages that should be hidden. + /// Pages whose display elements should be hidden. + /// is . + /// contains a null entry. public void HidePages([DisallowNull] KryptonPage[] pages) { // Cannot hide a null reference @@ -248,9 +259,11 @@ public void HidePages([DisallowNull] KryptonPage[] pages) } /// - /// Hide all display elements of the provided pages. + /// Propagates a hide request for the named pages through the docking hierarchy inside a batched update. /// - /// Array of unique names of the pages that should be hidden. + /// Unique names of pages whose display elements should be hidden. + /// is or contains a null entry. + /// contains an empty string. public void HidePages([DisallowNull] string[] uniqueNames) { // Cannot hide a null reference @@ -281,7 +294,7 @@ public void HidePages([DisallowNull] string[] uniqueNames) } /// - /// Hide all display elements of all pages. + /// Propagates a hide-all request through the docking hierarchy inside a batched update. /// public void HideAllPages() { @@ -290,10 +303,12 @@ public void HideAllPages() } /// - /// Remove the named page. + /// Propagates a remove request for the named page through the docking hierarchy inside a batched update. /// - /// Unique name of the page that should be removed. - /// Should the page be disposed when removed. + /// Unique name of the page to remove. + /// Whether removed pages should also be disposed. + /// is . + /// is empty. public void RemovePage([DisallowNull] string uniqueName, bool disposePage) { // Cannot remove a null reference @@ -312,10 +327,12 @@ public void RemovePage([DisallowNull] string uniqueName, bool disposePage) } /// - /// Remove the referenced pages. + /// Propagates a remove request for the supplied pages through the docking hierarchy inside a batched update. /// - /// Array of references to pages that should be removed. - /// Should the page be disposed when removed. + /// Pages to remove. + /// Whether removed pages should also be disposed. + /// is . + /// contains a null entry. public void RemovePages([DisallowNull] KryptonPage[] pages, bool disposePage) { // Cannot remove a null reference @@ -344,10 +361,12 @@ public void RemovePages([DisallowNull] KryptonPage[] pages, bool disposePage) } /// - /// Remove the named pages. + /// Propagates a remove request for the named pages through the docking hierarchy inside a batched update. /// - /// Array of unique names of the pages that should be removed. - /// Should the page be disposed when removed. + /// Unique names of pages to remove. + /// Whether removed pages should also be disposed. + /// is or contains a null entry. + /// contains an empty string. public void RemovePages([DisallowNull] string[] uniqueNames, bool disposePage) { // Cannot remove a null reference @@ -379,9 +398,9 @@ public void RemovePages([DisallowNull] string[] uniqueNames, bool disposePage) } /// - /// Remove all pages. + /// Propagates a remove-all request through the docking hierarchy inside a batched update. /// - /// Should the page be disposed when removed. + /// Whether removed pages should also be disposed. public void RemoveAllPages(bool disposePage) { // Remove all details about all pages from all parts of the hierarchy @@ -390,10 +409,10 @@ public void RemoveAllPages(bool disposePage) } /// - /// Propagates an action request down the hierarchy of docking elements. + /// Ignores selected global show, hide, and remove-all actions; delegates all other actions to the base implementation. /// - /// Action that is requested to be performed. - /// Array of unique names of the pages the action relates to. + /// Docking operation to forward. + /// Page unique names targeted by the action. public override void PropogateAction(DockingPropogateAction action, string[]? uniqueNames) { switch (action) @@ -411,11 +430,11 @@ public override void PropogateAction(DockingPropogateAction action, string[]? un } /// - /// Propagates a request for drag targets down the hierarchy of docking elements. + /// Appends workspace drag targets for dragged pages that allow workspace docking. /// - /// Reference to window being dragged. - /// Set of pages being dragged. - /// Collection of drag targets. + /// Floating window under drag, if any. + /// Pages under drag. + /// List to append candidate targets into. public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, PageDragEndData? dragData, DragTargetList targets) @@ -443,10 +462,10 @@ public override void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, } /// - /// Find the docking location of the named page. + /// Returns when a non-placeholder page with is hosted in this workspace. /// - /// Unique name of the page. - /// Enumeration value indicating docking location. + /// Unique name of the page to locate. + /// when the page is present; otherwise . public override DockingLocation FindPageLocation(string uniqueName) { KryptonPage? page = DockableWorkspaceControl?.PageForUniqueName(uniqueName); @@ -457,10 +476,10 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find the docking element that contains the named page. + /// Returns this element when a non-placeholder page with is hosted in this workspace. /// - /// Unique name of the page. - /// IDockingElement reference if page is found; otherwise null. + /// Unique name of the page to locate. + /// This element when the page is present; otherwise . public override IDockingElement? FindPageElement(string uniqueName) { KryptonPage? page = DockableWorkspaceControl?.PageForUniqueName(uniqueName); @@ -471,11 +490,11 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find the docking element that contains the location specific store page for the named page. + /// Returns this element when a store-page placeholder for exists at . /// - /// Location to be searched. - /// Unique name of the page to be found. - /// IDockingElement reference if store page is found; otherwise null. + /// Docking location to search. + /// Unique name of the page whose placeholder is sought. + /// This element when a matching store page is present; otherwise . public override IDockingElement? FindStorePageElement(DockingLocation location, string uniqueName) { if (location == DockingLocation.Workspace) @@ -491,10 +510,10 @@ public override DockingLocation FindPageLocation(string uniqueName) } /// - /// Find a workspace element by searching the hierarchy. + /// Always returns this element; the argument is not consulted. /// - /// Named page for which a suitable workspace element is required. - /// KryptonDockingWorkspace reference if found; otherwise false. + /// Unique name of the page being located. + /// This element. public override KryptonDockingWorkspace FindDockingWorkspace(string uniqueName) => this; #endregion diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupEventArgs.cs index 24ea6da241..3d3229a7ba 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a AutoHiddenGroupAdding/AutoHiddenGroupRemoved events. +/// Event payload when an auto-hidden group control is added to or removed from the docking tree. /// public class AutoHiddenGroupEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the AutoHiddenGroupEventArgs class. + /// Captures the auto-hidden group control and its owning docking element. /// - /// Reference to auto hidden group control instance. - /// Reference to docking auto hidden group element that is managing the control. + /// Auto-hidden group control that was added or removed. + /// Docking element that owns the auto-hidden group control. public AutoHiddenGroupEventArgs(KryptonAutoHiddenGroup control, KryptonDockingAutoHiddenGroup element) { @@ -33,14 +33,14 @@ public AutoHiddenGroupEventArgs(KryptonAutoHiddenGroup control, #region Public /// - /// Gets a reference to the KryptonAutoHiddenGroup control. + /// Auto-hidden group control that was added or removed; assigned at construction. /// public KryptonAutoHiddenGroup AutoHiddenGroupControl { get; } /// - /// Gets a reference to the KryptonDockingAutoHiddenGroup that is managing the group. + /// Docking element that owns the auto-hidden group control; assigned at construction. /// public KryptonDockingAutoHiddenGroup AutoHiddenGroupElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupPanelEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupPanelEventArgs.cs index f6198dffc6..9153d07dfa 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupPanelEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenGroupPanelEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a AutoHiddenGroupPanelAdding/AutoHiddenGroupPanelRemoved events. +/// Event payload when an auto-hidden group panel is added to or removed from a docking edge. /// public class AutoHiddenGroupPanelEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the AutoHiddenGroupPanelEventArgs class. + /// Captures the auto-hidden panel control and its owning edge docking element. /// - /// Reference to auto hidden panel control instance. - /// Reference to docking auto hidden edge element that is managing the panel. + /// Auto-hidden panel control that was added or removed. + /// Docking element that owns the auto-hidden panel. public AutoHiddenGroupPanelEventArgs(KryptonAutoHiddenPanel autoHiddenPanel, KryptonDockingEdgeAutoHidden element) { @@ -33,14 +33,14 @@ public AutoHiddenGroupPanelEventArgs(KryptonAutoHiddenPanel autoHiddenPanel, #region Public /// - /// Gets a reference to the KryptonAutoHiddenPanel control. + /// Auto-hidden panel control that was added or removed; assigned at construction. /// public KryptonAutoHiddenPanel AutoHiddenPanelControl { get; } /// - /// Gets a reference to the KryptonDockingEdgeAutoHidden that is managing the edge. + /// Docking element that owns the auto-hidden panel; assigned at construction. /// public KryptonDockingEdgeAutoHidden EdgeAutoHiddenElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenSeparatorResizeEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenSeparatorResizeEventArgs.cs index 4d1aede711..012f0a52c9 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenSeparatorResizeEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenSeparatorResizeEventArgs.cs @@ -13,18 +13,18 @@ namespace Krypton.Docking; /// -/// Event arguments for a AutoHiddenSeparatorResize event. +/// Event payload for auto-hidden dockspace separator resize operations where handlers may adjust movement limits. /// public class AutoHiddenSeparatorResizeEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the AutoHiddenSeparatorResizeEventArgs class. + /// Captures the separator, dockspace, page, and initial resize bounds for the auto-hidden resize. /// - /// Reference to separator control instance. - /// Reference to dockspace control instance. - /// Reference to page contained in the dockspace. - /// Initial resizing rectangle. + /// Separator control being dragged. + /// Dockspace control adjacent to the separator. + /// Page contained in the dockspace; may be null. + /// Initial movement rectangle before handler adjustment. public AutoHiddenSeparatorResizeEventArgs(KryptonSeparator separator, KryptonDockspace dockspace, KryptonPage? page, @@ -39,24 +39,24 @@ public AutoHiddenSeparatorResizeEventArgs(KryptonSeparator separator, #region Public /// - /// Gets a reference to the KryptonSeparator control. + /// Separator control being dragged; assigned at construction. /// public KryptonSeparator SeparatorControl { get; } /// - /// Gets a reference to the KryptonDockspace control. + /// Dockspace control adjacent to the separator; assigned at construction. /// public KryptonDockspace DockspaceControl { get; } /// - /// Gets a reference to the KryptonPage instance. + /// Page contained in the dockspace; may be null. /// public KryptonPage? Page { get; } /// - /// Gets and sets the rectangle that limits resizing of the dockspace using the separator. + /// Movement rectangle applied during separator dragging; handlers may change this value before it is applied. /// public Rectangle ResizeRect { get; set; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenShowingStateEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenShowingStateEventArgs.cs index 7ad2dc7505..d282d64437 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenShowingStateEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/AutoHiddenShowingStateEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for the change in auto hidden page showing state. +/// Event payload reporting a change to an auto-hidden page slide-out showing state. /// public class AutoHiddenShowingStateEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the AutoHiddenShowingStateEventArgs class. + /// Captures the affected page and its new auto-hidden showing state. /// - /// Page for which state has changed. - /// New state of the auto hidden page. + /// Page whose showing state changed; may be null. + /// New showing state of the auto-hidden page. public AutoHiddenShowingStateEventArgs(KryptonPage? page, DockingAutoHiddenShowState state) { Page = page; @@ -32,14 +32,14 @@ public AutoHiddenShowingStateEventArgs(KryptonPage? page, DockingAutoHiddenShowS #region Public /// - /// Gets the page that has had the state change. + /// Page whose showing state changed; may be null. /// public KryptonPage? Page { get; } /// - /// Gets the new state of the auto hidden page. + /// New showing state of the auto-hidden page; assigned at construction. /// public DockingAutoHiddenShowState NewState { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/CancelDropDownEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/CancelDropDownEventArgs.cs index 1108c201ee..955a187002 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/CancelDropDownEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/CancelDropDownEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for cancellable events that need to provide a unique name and context menu. +/// Event payload for page drop-down button clicks where handlers populate or veto the context menu. /// public class CancelDropDownEventArgs : CancelEventArgs { #region Identity /// - /// Initialize a new instance of the CancelDropDownEventArgs class. + /// Captures the context menu and page associated with the drop-down click. /// - /// Reference to associated context menu. - /// Reference to the associated page. + /// Context menu to populate or display; may be null. + /// Page associated with the drop-down; may be null. public CancelDropDownEventArgs(KryptonContextMenu? contextMenu, KryptonPage? page) : base(false) { @@ -33,14 +33,14 @@ public CancelDropDownEventArgs(KryptonContextMenu? contextMenu, KryptonPage? pag #region Public /// - /// Gets a reference to the context menu. + /// Context menu to populate or display; handlers may add items before it is shown. May be null. /// public KryptonContextMenu? KryptonContextMenu { get; } /// - /// Gets a reference to the page. + /// Page associated with the drop-down click; may be null. /// public KryptonPage? Page { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/CancelUniqueNameEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/CancelUniqueNameEventArgs.cs index 3f101a20ad..8e6710e000 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/CancelUniqueNameEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/CancelUniqueNameEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need to provide a unique name but can be cancelled. +/// Event payload for page layout change requests that handlers can veto. /// public class CancelUniqueNameEventArgs : UniqueNameEventArgs { #region Identity /// - /// Initialize a new instance of the CancelUniqueNameEventArgs class. + /// Captures the page unique name and initial cancel flag for the layout request. /// - /// Unique name of page. - /// Initial value for the cancel property. + /// Unique name of the page. + /// Initial cancel flag; when true the request is already vetoed before handlers run. public CancelUniqueNameEventArgs([DisallowNull] string uniqueName, bool cancel) : base(uniqueName) => Cancel = cancel; @@ -31,9 +31,9 @@ public CancelUniqueNameEventArgs([DisallowNull] string uniqueName, bool cancel) #region Public /// - /// Gets and sets a value indicating if the event action should be cancelled. + /// When true after handlers run, the requested layout change is not applied. /// public bool Cancel { get; set; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/CloseRequestEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/CloseRequestEventArgs.cs index c70f5519cf..887c17530d 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/CloseRequestEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/CloseRequestEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for the PageCloseRequest event. +/// Event payload for PageCloseRequest where handlers choose how each named page is closed. /// public class CloseRequestEventArgs : UniqueNameEventArgs { #region Identity /// - /// Initialize a new instance of the CloseRequestEventArgs class. + /// Captures the page unique name and initial close action for the close request. /// /// Unique name of the page associated with the event. - /// Initial close action to use. + /// Initial close action; typically the docking manager default. public CloseRequestEventArgs(string uniqueName, DockingCloseRequest closeRequest) : base(uniqueName) => CloseRequest = closeRequest; @@ -31,9 +31,9 @@ public CloseRequestEventArgs(string uniqueName, DockingCloseRequest closeRequest #region Public /// - /// Gets and sets the close action to be performed. + /// Close action applied to the named page; handlers may change this before the manager acts on it. /// public DockingCloseRequest CloseRequest { get; set; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/ContextPageEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/ContextPageEventArgs.cs index 079638f575..85762498d4 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/ContextPageEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/ContextPageEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need a page and context menu. +/// Event payload for page context menu display where handlers may cancel showing or customize the menu. /// public class ContextPageEventArgs : CancelEventArgs { #region Identity /// - /// Initialize a new instance of the ContextPageEventArgs class. + /// Captures the target page, context menu, and initial cancel flag for context menu display. /// - /// Page associated with the context menu. - /// Context menu that can be customized. - /// Initial value for the cancel property. + /// Page whose context menu is being shown; may be null. + /// Context menu to display; handlers may customize items before display. + /// Initial cancel flag; when true the menu is not shown. public ContextPageEventArgs(KryptonPage? page, KryptonContextMenu contextMenu, bool cancel) @@ -36,14 +36,14 @@ public ContextPageEventArgs(KryptonPage? page, #region Public /// - /// Gets access to page associated with the context menu. + /// Page whose context menu is being shown; may be null. /// public KryptonPage? Page { get; } /// - /// Gets access to context menu that can be customized. + /// Context menu to display; handlers may customize items before display. May be null. /// public KryptonContextMenu? KryptonContextMenu { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalLoadingEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalLoadingEventArgs.cs index 8e638c6a0a..6c5b21aa63 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalLoadingEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalLoadingEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event data for loading global docking configuration. +/// Event payload raised while global docking layout is being loaded from XML. /// public class DockGlobalLoadingEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockGlobalLoadingEventArgs class. + /// Captures the docking manager and XML reader active during global layout load. /// - /// Reference to owning docking manager instance. - /// Xml reader for persisting custom data. + /// Docking manager owning the load operation; may be null. + /// XML reader supplying persisted global docking data. public DockGlobalLoadingEventArgs(KryptonDockingManager? manager, XmlReader xmlReading) { @@ -33,14 +33,14 @@ public DockGlobalLoadingEventArgs(KryptonDockingManager? manager, #region Public /// - /// Gets the docking manager reference. + /// Docking manager owning the load operation; may be null. /// public KryptonDockingManager? DockingManager { get; } /// - /// Gets the xml reader. + /// XML reader supplying persisted global docking data; handlers read custom elements from this stream. /// public XmlReader XmlReader { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalSavingEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalSavingEventArgs.cs index e38cd20860..af0b313ee6 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalSavingEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockGlobalSavingEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event data for saving global docking configuration. +/// Event payload raised while global docking layout is being persisted to XML. /// public class DockGlobalSavingEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockGlobalSavingEventArgs class. + /// Captures the docking manager and XML writer active during global layout save. /// - /// Reference to owning docking manager instance. - /// Xml writer for persisting custom data. + /// Docking manager owning the save operation; may be null. + /// XML writer receiving persisted global docking data. public DockGlobalSavingEventArgs(KryptonDockingManager? manager, XmlWriter xmlWriter) { @@ -33,14 +33,14 @@ public DockGlobalSavingEventArgs(KryptonDockingManager? manager, #region Public /// - /// Gets the docking manager reference. + /// Docking manager owning the save operation; may be null. /// public KryptonDockingManager? DockingManager { get; } /// - /// Gets the xml writer. + /// XML writer receiving persisted global docking data; handlers append custom elements to this stream. /// public XmlWriter XmlWriter { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockPageLoadingEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockPageLoadingEventArgs.cs index 5f4cabbac0..99ef99e8d0 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockPageLoadingEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockPageLoadingEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event data for loading docking page configuration. +/// Event payload raised while a single page docking layout is being loaded from XML. /// public class DockPageLoadingEventArgs : DockGlobalLoadingEventArgs { #region Identity /// - /// Initialize a new instance of the DockPageLoadingEventArgs class. + /// Captures the docking manager, XML reader, and page whose layout is being restored. /// - /// Reference to owning docking manager instance. - /// Xml reader for persisting custom data. - /// Reference to page being loaded. + /// Docking manager owning the load operation; may be null. + /// XML reader supplying persisted page docking data. + /// Page whose layout is being restored; may be null. public DockPageLoadingEventArgs(KryptonDockingManager? manager, XmlReader xmlReading, KryptonPage? page) @@ -34,9 +34,9 @@ public DockPageLoadingEventArgs(KryptonDockingManager? manager, #region Public /// - /// Gets the loading page reference. + /// Page whose layout is being restored; may be null. /// public KryptonPage? Page { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockPageSavingEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockPageSavingEventArgs.cs index 45ae0b3178..69345ab5a2 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockPageSavingEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockPageSavingEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event data for saving docking page configuration. +/// Event payload raised while a single page docking layout is being persisted to XML. /// public class DockPageSavingEventArgs : DockGlobalSavingEventArgs { #region Identity /// - /// Initialize a new instance of the DockPageSavingEventArgs class. + /// Captures the docking manager, XML writer, and page whose layout is being saved. /// - /// Reference to owning docking manager instance. - /// Xml writer for persisting custom data. - /// Reference to page being saved. + /// Docking manager owning the save operation; may be null. + /// XML writer receiving persisted page docking data. + /// Page whose layout is being persisted. public DockPageSavingEventArgs(KryptonDockingManager? manager, XmlWriter xmlWriter, KryptonPage page) @@ -34,9 +34,9 @@ public DockPageSavingEventArgs(KryptonDockingManager? manager, #region Public /// - /// Gets the saving page reference. + /// Page whose layout is being persisted; assigned at construction and not modified afterward. /// public KryptonPage Page { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockableNavigatorEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockableNavigatorEventArgs.cs index cb5dcdbb83..82863bf8af 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockableNavigatorEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockableNavigatorEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockableNavigatorEventArgs event. +/// Event payload when a dockable navigator control is added to or removed from the docking tree. /// public class DockableNavigatorEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockableNavigatorEventArgs class. + /// Captures the dockable navigator control and its owning docking element. /// - /// Reference to dockable navigator control instance. - /// Reference to docking navigator element that is managing the dockable workspace control. + /// Dockable navigator control that was added or removed. + /// Docking element that owns the dockable navigator control. public DockableNavigatorEventArgs(KryptonDockableNavigator navigator, KryptonDockingNavigator element) { @@ -33,14 +33,14 @@ public DockableNavigatorEventArgs(KryptonDockableNavigator navigator, #region Public /// - /// Gets a reference to the KryptonDockableNavigator control. + /// Dockable navigator control that was added or removed; assigned at construction. /// public KryptonDockableNavigator DockableNavigatorControl { get; } /// - /// Gets a reference to the KryptonDockingNavigator that is managing the dockable workspace control. + /// Docking element that owns the dockable navigator control; assigned at construction. /// public KryptonDockingNavigator DockingNavigatorElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceCellEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceCellEventArgs.cs index 415cb311f2..8f5f168201 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceCellEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceCellEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockableWorkspaceCellAdding/DockableWorkspaceCellRemoving events. +/// Event payload when a dockable workspace cell is added to or removed from a dockable workspace. /// public class DockableWorkspaceCellEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockableWorkspaceCellEventArgs class. + /// Captures the parent dockable workspace, its docking element, and the affected workspace cell. /// - /// Reference to existing dockable workspace control instance. - /// Reference to docking workspace element that is managing the dockable workspace control. - /// Reference to workspace control cell instance. + /// Dockable workspace control that contains the cell. + /// Docking element that owns the dockable workspace control. + /// Workspace cell that was added or removed. public DockableWorkspaceCellEventArgs(KryptonDockableWorkspace workspace, KryptonDockingWorkspace element, KryptonWorkspaceCell cell) @@ -36,19 +36,19 @@ public DockableWorkspaceCellEventArgs(KryptonDockableWorkspace workspace, #region Public /// - /// Gets a reference to the KryptonDockableWorkspace that contains the cell. + /// Dockable workspace control that contains the cell; assigned at construction. /// public KryptonDockableWorkspace DockableWorkspaceControl { get; } /// - /// Gets a reference to the KryptonDockingWorkspace that is managing the dockable workspace. + /// Docking element that owns the dockable workspace control; assigned at construction. /// public KryptonDockingWorkspace WorkspaceElement { get; } /// - /// Gets a reference to the KryptonWorkspaceCell control. + /// Workspace cell that was added or removed; assigned at construction. /// public KryptonWorkspaceCell CellControl { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceEventArgs.cs index 2c1e97c50f..a7cc07c532 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockableWorkspaceEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockableWorkspaceRemoved event. +/// Event payload when a dockable workspace control is added to or removed from the docking tree. /// public class DockableWorkspaceEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockableWorkspaceEventArgs class. + /// Captures the dockable workspace control and its owning docking element. /// - /// Reference to dockable workspace control instance. - /// Reference to docking workspace element that is managing the dockable workspace control. + /// Dockable workspace control that was added or removed; may be null. + /// Docking element that owns the dockable workspace control. public DockableWorkspaceEventArgs(KryptonDockableWorkspace? workspace, KryptonDockingWorkspace element) { @@ -33,14 +33,14 @@ public DockableWorkspaceEventArgs(KryptonDockableWorkspace? workspace, #region Public /// - /// Gets a reference to the KryptonDockableWorkspace control. + /// Dockable workspace control that was added or removed; may be null. /// public KryptonDockableWorkspace? DockableWorkspaceControl { get; } /// - /// Gets a reference to the KryptonDockingWorkspace that is managing the dockable workspace control. + /// Docking element that owns the dockable workspace control; assigned at construction. /// public KryptonDockingWorkspace DockingWorkspaceElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceCellEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceCellEventArgs.cs index ca60950ab5..ea0f801f59 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceCellEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceCellEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockspaceCellAdding/DockspaceCellRemoving events. +/// Event payload when a dockspace workspace cell is added to or removed from a dockspace. /// public class DockspaceCellEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockspaceCellEventArgs class. + /// Captures the parent dockspace, its docking element, and the affected workspace cell. /// - /// Reference to existing dockspace control instance. - /// Reference to docking dockspace element that is managing the dockspace control. - /// Reference to dockspace control cell instance. + /// Dockspace control that contains the cell. + /// Docking element that owns the dockspace control. + /// Workspace cell that was added or removed. public DockspaceCellEventArgs(KryptonDockspace dockspace, KryptonDockingDockspace element, KryptonWorkspaceCell cell) @@ -36,19 +36,19 @@ public DockspaceCellEventArgs(KryptonDockspace dockspace, #region Public /// - /// Gets a reference to the KryptonDockspace that contains the cell. + /// Dockspace control that contains the cell; assigned at construction. /// public KryptonDockspace DockspaceControl { get; } /// - /// Gets a reference to the KryptonDockingDockspace that is managing the dockspace. + /// Docking element that owns the dockspace control; assigned at construction. /// public KryptonDockingDockspace DockspaceElement { get; } /// - /// Gets a reference to the KryptonWorkspaceCell control. + /// Workspace cell that was added or removed; assigned at construction. /// public KryptonWorkspaceCell CellControl { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceEventArgs.cs index 8733e4c93c..e26b2a17c3 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockspaceAdding/DockspaceRemoved events. +/// Event payload when a dockspace control is added to or removed from the docking tree. /// public class DockspaceEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockspaceEventArgs class. + /// Captures the dockspace control and its owning docking element. /// - /// Reference to new dockspace control instance. - /// Reference to docking dockspace element that is managing the dockspace control. + /// Dockspace control that was added or removed. + /// Docking element that owns the dockspace control; may be null. public DockspaceEventArgs(KryptonDockspace dockspace, KryptonDockingDockspace? element) { @@ -33,14 +33,14 @@ public DockspaceEventArgs(KryptonDockspace dockspace, #region Public /// - /// Gets a reference to the KryptonDockspace control. + /// Dockspace control that was added or removed; assigned at construction. /// public KryptonDockspace DockspaceControl { get; } /// - /// Gets a reference to the KryptonDockingDockspace that is managing the dockspace control. + /// Docking element that owns the dockspace control; may be null. /// public KryptonDockingDockspace? DockspaceElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorEventArgs.cs index bde72f2c73..924095b27e 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockspaceSeparatorAdding/DockspaceSeparatorRemoved event. +/// Event payload when a dockspace separator is added to or removed from the docking tree. /// public class DockspaceSeparatorEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the DockspaceSeparatorEventArgs class. + /// Captures the separator control and its owning dockspace docking element. /// - /// Reference to separator control instance. - /// Reference to dockspace docking element that is managing the separator. + /// Separator control that was added or removed. + /// Docking element that owns the separator; may be null. public DockspaceSeparatorEventArgs(KryptonSeparator separator, KryptonDockingDockspace? element) { @@ -33,14 +33,14 @@ public DockspaceSeparatorEventArgs(KryptonSeparator separator, #region Public /// - /// Gets a reference to the KryptonSeparator control.. + /// Separator control that was added or removed; assigned at construction. /// public KryptonSeparator SeparatorControl { get; } /// - /// Gets a reference to the KryptonDockingDockspace that is managing the dockspace. + /// Docking element that owns the separator; may be null. /// public KryptonDockingDockspace? DockspaceElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorResizeEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorResizeEventArgs.cs index 0a1b372419..fa979a0e96 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorResizeEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/DockspaceSeparatorResizeEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event arguments for a DockspaceSeparatorResize event. +/// Event payload for dockspace separator resize operations where handlers may adjust movement limits. /// public class DockspaceSeparatorResizeEventArgs : DockspaceSeparatorEventArgs { #region Identity /// - /// Initialize a new instance of the DockspaceSeparatorResizeEventArgs class. + /// Captures the separator, owning dockspace element, and initial resize bounds. /// - /// Reference to separator control instance. - /// Reference to dockspace docking element that is managing the separator. - /// Initial resizing rectangle. + /// Separator control being dragged. + /// Docking element that owns the separator. + /// Initial movement rectangle before handler adjustment. public DockspaceSeparatorResizeEventArgs(KryptonSeparator separator, KryptonDockingDockspace element, Rectangle resizeRect) @@ -34,9 +34,9 @@ public DockspaceSeparatorResizeEventArgs(KryptonSeparator separator, #region Public /// - /// Gets and sets the rectangle that limits resizing of the dockspace using the separator. + /// Movement rectangle applied during separator dragging; handlers may change this value before it is applied. /// public Rectangle ResizeRect { get; set; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/FloatingWindowEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/FloatingWindowEventArgs.cs index b6878d4a24..f3270d70f7 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/FloatingWindowEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/FloatingWindowEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a FloatingWindowAdding/FloatingWindowRemoved event. +/// Event payload when a floating window is added to or removed from the docking tree. /// public class FloatingWindowEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the FloatingWindowEventArgs class. + /// Captures the floating window and its owning docking element. /// - /// Reference to floating window instance. - /// Reference to docking floating winodw element that is managing the floating window. + /// Floating window that was added or removed. + /// Docking element that owns the floating window. public FloatingWindowEventArgs(KryptonFloatingWindow floatingWindow, KryptonDockingFloatingWindow element) { @@ -33,14 +33,14 @@ public FloatingWindowEventArgs(KryptonFloatingWindow floatingWindow, #region Public /// - /// Gets a reference to the KryptonFloatingWindow control. + /// Floating window that was added or removed; assigned at construction. /// public KryptonFloatingWindow FloatingWindow { get; } /// - /// Gets a reference to the KryptonDockingFloatingWindow that is managing the dockspace. + /// Docking element that owns the floating window; assigned at construction. /// public KryptonDockingFloatingWindow FloatingWindowElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceCellEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceCellEventArgs.cs index 5abab7ddc6..c9ac4a8d8f 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceCellEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceCellEventArgs.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Event arguments for a FloatspaceCellAdding/FloatingCellRemoving events. +/// Event payload when a floatspace workspace cell is added to or removed from a floatspace. /// public class FloatspaceCellEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the FloatspaceCellEventArgs class. + /// Captures the parent floatspace, its docking element, and the affected workspace cell. /// - /// Reference to existing floatspace control instance. - /// Reference to docking floatspace element that is managing the floatspace control. - /// Reference tofloatspace control cell instance. + /// Floatspace control that contains the cell; may be null. + /// Docking element that owns the floatspace control. + /// Workspace cell that was added or removed. public FloatspaceCellEventArgs(KryptonFloatspace? floatspace, KryptonDockingFloatspace element, KryptonWorkspaceCell cell) @@ -36,19 +36,19 @@ public FloatspaceCellEventArgs(KryptonFloatspace? floatspace, #region Public /// - /// Gets a reference to the KryptonFloatspace control. + /// Floatspace control that contains the cell; may be null. /// public KryptonFloatspace? FloatspaceControl { get; } /// - /// Gets a reference to the KryptonDockingFloatspace that is managing the floatspace. + /// Docking element that owns the floatspace control; assigned at construction. /// public KryptonDockingFloatspace FloatspaceElement { get; } /// - /// Gets a reference to the KryptonWorkspaceCell control. + /// Workspace cell that was added or removed; assigned at construction. /// public KryptonWorkspaceCell CellControl { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceEventArgs.cs index 750b21bd8b..9538991553 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/FloatspaceEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for a FloatspaceAdding/FloatspaceRemoved event. +/// Event payload when a floatspace control is added to or removed from the docking tree. /// public class FloatspaceEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the FloatspaceEventArgs class. + /// Captures the floatspace control and its owning docking element. /// - /// Reference to new floatspace control instance. - /// Reference to docking floatspace element that is managing the floatspace control. + /// Floatspace control that was added or removed; may be null. + /// Docking element that owns the floatspace control. public FloatspaceEventArgs(KryptonFloatspace? floatspace, KryptonDockingFloatspace element) { @@ -33,14 +33,14 @@ public FloatspaceEventArgs(KryptonFloatspace? floatspace, #region Public /// - /// Gets a reference to the KryptonFloatspace control.. + /// Floatspace control that was added or removed; may be null. /// public KryptonFloatspace? FloatspaceControl { get; } /// - /// Gets a reference to the KryptonDockingFloatspace that is managing the space control. + /// Docking element that owns the floatspace control; assigned at construction. /// public KryptonDockingFloatspace FloatspaceElement { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/PagesEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/PagesEventArgs.cs index 8bc54007fb..56e138196a 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/PagesEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/PagesEventArgs.cs @@ -13,24 +13,24 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need to provide a colletion of pages. +/// Event payload carrying a collection of docking pages, such as pages left without a parent after layout changes. /// public class PagesEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the PagesEventArgs class. + /// Captures the page collection supplied when the event is raised. /// - /// Collection of pages. + /// Pages associated with the event. public PagesEventArgs(KryptonPageCollection pages) => Pages = pages; #endregion #region Public /// - /// Gets access to a collection of pages. + /// Pages associated with the event; assigned at construction and not modified afterward. /// public KryptonPageCollection Pages { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/ScreenAndOffsetEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/ScreenAndOffsetEventArgs.cs index 9e9c2f8720..504d46b1d5 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/ScreenAndOffsetEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/ScreenAndOffsetEventArgs.cs @@ -13,16 +13,16 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need a screen point and element offset. +/// Event payload carrying screen coordinates when a floating window caption drag begins. /// public class ScreenAndOffsetEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the ScreenAndOffsetEventArgs class. + /// Captures the screen pointer position and offset from the window origin at drag start. /// - /// Screen point. - /// Element offset. + /// Screen coordinates of the pointer when dragging started. + /// Pointer offset from the floating window top-left corner at drag start. public ScreenAndOffsetEventArgs(Point screenPoint, Point elementOffset) { ScreenPoint = screenPoint; @@ -32,14 +32,14 @@ public ScreenAndOffsetEventArgs(Point screenPoint, Point elementOffset) #region Public /// - /// Gets the screen point. + /// Screen coordinates of the pointer when dragging started; assigned at construction. /// public Point ScreenPoint { get; } /// - /// Gets the element offset. + /// Pointer offset from the floating window top-left corner at drag start; assigned at construction. /// public Point ElementOffset { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/StorePageEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/StorePageEventArgs.cs index da6688d6d1..85e1ca1b3f 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/StorePageEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/StorePageEventArgs.cs @@ -13,24 +13,24 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need to provide a store page reference. +/// Event payload associating a store page with the raising action. /// public class StorePageEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the StorePageEventArgs class. + /// Captures the store page associated with the event. /// - /// Reference to store page that is associated with the event. + /// Store page associated with the event. public StorePageEventArgs(KryptonStorePage storePage) => StorePage = storePage; #endregion #region Public /// - /// Gets a reference to store page that is associated with the event. + /// Store page associated with the event; assigned at construction and not modified afterward. /// public KryptonStorePage StorePage { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNameEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNameEventArgs.cs index a82e054040..c63eaa80a0 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNameEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNameEventArgs.cs @@ -13,24 +13,24 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need to provide a unique name. +/// Event payload identifying a single docking page by its unique name. /// public class UniqueNameEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the UniqueNameEventArgs class. + /// Captures the unique name of the page associated with the event. /// - /// Unique name of page. + /// Unique name of the page. public UniqueNameEventArgs(string uniqueName) => UniqueName = uniqueName; #endregion #region Public /// - /// Gets the unique name of a page. + /// Unique name of the page; assigned at construction and not modified afterward. /// public string UniqueName { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNamesEventArgs.cs b/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNamesEventArgs.cs index 3a5811ef37..30f22a05f0 100644 --- a/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNamesEventArgs.cs +++ b/Source/Krypton Components/Krypton.Docking/Event Args/UniqueNamesEventArgs.cs @@ -13,24 +13,24 @@ namespace Krypton.Docking; /// -/// Event arguments for events that need to provide a set of unique names. +/// Event payload listing the unique names of docking pages involved in the raising action. /// public class UniqueNamesEventArgs : EventArgs { #region Identity /// - /// Initialize a new instance of the UniqueNamesEventArgs class. + /// Captures the unique names supplied when the event is raised. /// - /// Array of unique names. + /// Unique names of the pages associated with the event. public UniqueNamesEventArgs(IReadOnlyList uniqueNames) => UniqueNames = uniqueNames; #endregion #region Public /// - /// Gets the array of unique names associated with the event. + /// Unique names of the pages; assigned at construction and not modified afterward. /// public IReadOnlyList UniqueNames { get; } #endregion -} \ No newline at end of file +} diff --git a/Source/Krypton Components/Krypton.Docking/General/Definitions.cs b/Source/Krypton Components/Krypton.Docking/General/Definitions.cs index 218ff15d98..35292d73b6 100644 --- a/Source/Krypton Components/Krypton.Docking/General/Definitions.cs +++ b/Source/Krypton Components/Krypton.Docking/General/Definitions.cs @@ -14,70 +14,70 @@ namespace Krypton.Docking; #region Interface IDockingElement /// -/// Interface exposed by elements within the docking hierarchy. +/// Contract for nodes in the docking element tree used to locate pages, propagate layout actions, and persist layout. /// public interface IDockingElement : IEnumerable { /// - /// Gets and sets the name of the docking element. + /// Unique name that identifies this element within its parent's collection. /// string Name { get; } /// - /// Gets a comma separated list of names leading to this element. + /// Comma-separated chain of element names from the root to this node. /// string Path { get; } /// - /// Resolve the provided path. + /// Walks the hierarchy using a comma-separated name path and returns the matching element. /// - /// Comma separated list of names to resolve. - /// IDockingElement reference if path was resolved with success; otherwise null. + /// Comma-separated list of names to resolve. + /// The matching element, or null when no node on the path exists. IDockingElement? ResolvePath(string path); /// - /// Gets and sets access to the parent docking element. + /// Parent element in the hierarchy, or null when this node is the root. /// IDockingElement? Parent { get; set; } /// - /// Propagates an action request down the hierarchy of docking elements. + /// Dispatches a layout or lifecycle action for the named pages to descendants. /// /// Action that is requested to be performed. /// Array of unique names of the pages the action relates to. void PropogateAction(DockingPropogateAction action, string[]? uniqueNames); /// - /// Propagates an action request down the hierarchy of docking elements. + /// Dispatches a layout or lifecycle action for the supplied pages to descendants. /// /// Action that is requested to be performed. /// Array of pages the action relates to. void PropogateAction(DockingPropogateAction action, KryptonPage[] pages); /// - /// Propagates an action request down the hierarchy of docking elements. + /// Dispatches a layout action that carries an integer parameter to descendants. /// /// Action that is requested to be performed. /// Integer value associated with the request. void PropogateAction(DockingPropogateAction action, int value); /// - /// Propagates a boolean state request down the hierarchy of docking elements. + /// Queries descendants for a boolean flag about a page. /// - /// Boolean state that is requested to be recovered. + /// Boolean state that is requested to be queried. /// Unique name of the page the request relates to. - /// True/False if state is known; otherwise null indicating no information available. + /// True or false when a descendant answers; otherwise null when no element can answer. bool? PropogateBoolState(DockingPropogateBoolState state, string uniqueName); /// - /// Propagates an integer state request down the hierarchy of docking elements. + /// Queries descendants for an integer value and updates the reference when a match is found. /// - /// Integer state that is requested to be recovered. - /// Value discovered from matching + /// Integer state that is requested to be queried. + /// Seed value on input; updated when a descendant supplies a value. void PropogateIntState(DockingPropogateIntState state, ref int value); /// - /// Propagates a request for drag targets down the hierarchy of docking elements. + /// Collects drop targets offered by descendants for a drag operation. /// /// Reference to window being dragged. /// Set of pages being dragged. @@ -87,7 +87,7 @@ void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, DragTargetList targets); /// - /// Propagates a page request down the hierarchy of docking elements. + /// Locates a page reference matching the query for the named page. /// /// Request that should result in a page reference if found. /// Unique name of the page the request relates to. @@ -95,35 +95,35 @@ void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, KryptonPage? PropogatePageState(DockingPropogatePageState state, string uniqueName); /// - /// Propagates a page list request down the hierarchy of docking elements. + /// Appends matching pages from descendants into the supplied collection. /// /// Request that should result in pages collection being modified. /// Pages collection for modification by the docking elements. void PropogatePageList(DockingPropogatePageList state, KryptonPageCollection pages); /// - /// Propagates a workspace cell list request down the hierarchy of docking elements. + /// Appends matching workspace cells from descendants into the supplied collection. /// /// Request that should result in the cells collection being modified. /// Cells collection for modification by the docking elements. void PropogateCellList(DockingPropogateCellList state, KryptonWorkspaceCellList cells); /// - /// Find the docking location of the named page. + /// Determines where the named page currently resides in the docking layout. /// /// Unique name of the page. /// Enumeration value indicating docking location. DockingLocation FindPageLocation(string uniqueName); /// - /// Find the docking element that contains the named page. + /// Returns the element that currently hosts the named page. /// /// Unique name of the page. /// IDockingElement reference if page is found; otherwise null. IDockingElement? FindPageElement(string uniqueName); /// - /// Find the docking element that contains the location specific store page for the named page. + /// Returns the element holding the placeholder for the named page at the given location. /// /// Location to be searched. /// Unique name of the page to be found. @@ -131,67 +131,67 @@ void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, IDockingElement? FindStorePageElement(DockingLocation location, string uniqueName); /// - /// Find a floating docking element by searching the hierarchy. + /// Returns the floating host for the named page, or null if none exists. /// /// Named page for which a suitable floating element is required. - /// KryptonDockingFloating reference if found; otherwise false. + /// KryptonDockingFloating reference if found; otherwise null. KryptonDockingFloating? FindDockingFloating(string uniqueName); /// - /// Find a edge docked element by searching the hierarchy. + /// Returns the edge-docked host for the named page, or null if none exists. /// /// Named page for which a suitable docking edge element is required. - /// KryptonDockingEdgeDocked reference if found; otherwise false. + /// KryptonDockingEdgeDocked reference if found; otherwise null. KryptonDockingEdgeDocked? FindDockingEdgeDocked(string uniqueName); /// - /// Find a edge auto hidden element by searching the hierarchy. + /// Returns the auto-hidden edge host for the named page, or null if none exists. /// /// Named page for which a suitable auto hidden edge element is required. - /// KryptonDockingEdgeAutoHidden reference if found; otherwise false. + /// KryptonDockingEdgeAutoHidden reference if found; otherwise null. KryptonDockingEdgeAutoHidden? FindDockingEdgeAutoHidden(string uniqueName); /// - /// Find a workspace element by searching the hierarchy. + /// Returns the workspace host for the named page, or null if none exists. /// /// Named page for which a suitable workspace element is required. - /// KryptonDockingWorkspace reference if found; otherwise false. + /// KryptonDockingWorkspace reference if found; otherwise null. KryptonDockingWorkspace? FindDockingWorkspace(string uniqueName); /// - /// Find a navigator element by searching the hierarchy. + /// Returns the navigator host for the named page, or null if none exists. /// /// Named page for which a suitable navigator element is required. - /// KryptonDockingNavigator reference if found; otherwise false. + /// KryptonDockingNavigator reference if found; otherwise null. KryptonDockingNavigator? FindDockingNavigator(string uniqueName); /// - /// Saves docking configuration information using a provider xml writer. + /// Serializes this element and its children to XML. /// /// Xml writer object. void SaveElementToXml(XmlWriter xmlWriter); /// - /// Loads docking configuration information using a provider xml reader. + /// Restores this element and its children from XML using the supplied page collection. /// /// Xml reader object. /// Collection of available pages. void LoadElementFromXml(XmlReader xmlReader, KryptonPageCollection pages); /// - /// Gets the number of child docking elements. + /// Number of immediate child elements. /// int Count { get; } /// - /// Gets the docking element at the specified index. + /// Child element at the zero-based index. /// /// Index. /// Docking element at specified index. IDockingElement? this[int index] { get; } /// - /// Gets the docking element with the specified name. + /// Child element with the specified name. /// /// Name of element. /// Docking element with specified name. @@ -201,23 +201,23 @@ void PropogateDragTargets(KryptonFloatingWindow? floatingWindow, #region Interface IFloatingMessages /// -/// Interface exposed by elements that provide floating messages. +/// Callback surface for keyboard and mouse input routed from a floating drag window. /// public interface IFloatingMessages { /// - /// The WM_KEYDOWN message has occurred. + /// Called when WM_KEYDOWN is received; return true to suppress further handling. /// /// True to eat message; otherwise false. bool OnKEYDOWN(ref Message m); /// - /// The WM_MOUSEMOVE message has occurred. + /// Called when WM_MOUSEMOVE is received during a floating drag. /// void OnMOUSEMOVE(); /// - /// The WM_LBUTTONUP message has occurred. + /// Called when WM_LBUTTONUP is received to complete a floating drag. /// void OnLBUTTONUP(); } @@ -225,96 +225,96 @@ public interface IFloatingMessages #region Enum DockingEdge /// -/// Specifies a docking edge of a control. +/// Edge of a host control where docking layout is applied. /// public enum DockingEdge { - /// Specifies the left edge of a control. + /// Dock pages along the left side of the host control. Left, - /// Specifies the right edge of a control. + /// Dock pages along the right side of the host control. Right, - /// Specifies the top edge of a control. + /// Dock pages along the top side of the host control. Top, - /// Specifies the bottom edge of a control. + /// Dock pages along the bottom side of the host control. Bottom } #endregion #region Enum DockingCloseAction /// -/// Specifies the action to take when a docking close is required. +/// Outcome applied when a docking close is requested for a page. /// public enum DockingCloseRequest { - /// Specifies no action be taken. + /// Leave the page in place when a close is requested. None, - /// Specifies the named page be removed from the docking hierarchy. + /// Remove the page from the docking hierarchy without disposing it. RemovePage, - /// Specifies the named page be removed from the docking hierarchy and then disposed. + /// Remove the page from the hierarchy and dispose it afterward. RemovePageAndDispose, - /// Specifies the named page be hidden. + /// Hide the page while keeping it in the hierarchy. HidePage } #endregion #region Enum DockingLocation /// -/// Specifies the current docking location of a page. +/// Where a page currently resides within the docking layout. /// public enum DockingLocation { - /// Specifies the page is auto hidden against a control edge. + /// Page is auto hidden against a control edge. AutoHidden, - /// Specifies the page is docked against a control edge. + /// Page is docked against a control edge. Docked, - /// Specifies the page is inside a floating window. + /// Page is inside a floating window. Floating, - /// Specifies the page is inside a standalone workspace. + /// Page is inside a standalone workspace. Workspace, - /// Specifies the page is inside a standalone navigator. + /// Page is inside a standalone navigator. Navigator, - /// Specifies the page is part of a custom extension. + /// Page is hosted by a custom extension element. Custom, - /// Specifies the page is not inside the docking hierarchy. + /// Page is not present in the docking hierarchy. None } #endregion #region Enum DockingAutoHiddenShowState /// -/// Specifies the sliding state of a docked auto hidden page. +/// Sliding visibility state of an auto-hidden page. /// public enum DockingAutoHiddenShowState { /// - /// Specifies the auto hidden page has become hidden. + /// Auto-hidden page is fully hidden. /// Hidden, /// - /// Specifies the auto hidden page is sliding out into view. + /// Auto-hidden page is sliding out into view. /// SlidingOut, /// - /// Specifies the auto hidden page is sliding back to be hidden. + /// Auto-hidden page is sliding back to be hidden. /// SlidingIn, /// - /// Specifies the auto hidden page is fully showing. + /// Auto-hidden page is fully visible. /// Showing } @@ -322,162 +322,162 @@ public enum DockingAutoHiddenShowState #region Enum DockingPropogateAction /// -/// Specifies a docking propogate action. +/// Action broadcast through the docking element hierarchy. /// public enum DockingPropogateAction { - /// Specifies a null operation. + /// No operation. Null, - /// Specifies a multi-part update is starting. + /// Batch update is starting; defer layout until EndUpdate. StartUpdate, - /// Specifies a multi-part update has ended. + /// Batch update has ended; resume layout. EndUpdate, - /// Specifies all display elements of the named pages be shown. + /// Show display elements for the named pages. ShowPages, - /// Specifies all display elements of all pages be shown. + /// Show display elements for every page. ShowAllPages, - /// Specifies all display elements of the named pages be hidden. + /// Hide display elements for the named pages. HidePages, - /// Specifies all display elements of all pages be hidden. + /// Hide display elements for every page. HideAllPages, - /// Specifies the named pages are replaced with position placeholders. + /// Replace the named pages with position placeholders. StorePages, - /// Specifies all pages are replaced with position placeholders. + /// Replace every page with position placeholders. StoreAllPages, - /// Specifies the position placeholders are restored with actual pages. + /// Restore actual pages from position placeholders. RestorePages, - /// Specifies the auto hidden store pages should be removed for the named pages. + /// Remove auto-hidden store pages for the named pages. ClearAutoHiddenStoredPages, - /// Specifies the docked store pages should be removed for the named pages. + /// Remove docked store pages for the named pages. ClearDockedStoredPages, - /// Specifies the floating store pages should be removed for the named pages. + /// Remove floating store pages for the named pages. ClearFloatingStoredPages, - /// Specifies the filler store pages should be removed for the named pages. + /// Remove filler store pages for the named pages. ClearFillerStoredPages, - /// Specifies all stored pages should be removed for the named pages. + /// Remove all stored pages for the named pages. ClearStoredPages, - /// Specifies all stored pages should be removed. + /// Remove every stored page. ClearAllStoredPages, - /// Specifies all details of the named pages be removed. + /// Remove all details of the named pages. RemovePages, - /// Specifies all details of the named pages be removed and the page disposed. + /// Remove the named pages and dispose them. RemoveAndDisposePages, - /// Specifies all details of all pages be removed. + /// Remove all details of every page. RemoveAllPages, - /// Specifies all details of all pages be removed and the pages disposed. + /// Remove every page and dispose them. RemoveAndDisposeAllPages, - /// Specifies a loading operation is about to begin. + /// Layout load is about to begin. Loading, - /// Specifies a dockspace with matching ordering value reposition its controls. + /// Reposition dockspace controls that share the ordering value. RepositionDockspace, - /// Specifies the named string property has been updated. + /// A named string property changed and should be refreshed. StringChanged, - /// Specifies that debug output about the docking contents be output. + /// Emit debug output describing docking contents. DebugOutput } #endregion #region Enum DockingPropogateBoolState /// -/// Specifies a docking propogate for boolean state. +/// Boolean query broadcast through the docking element hierarchy. /// public enum DockingPropogateBoolState { - /// Specifies active state for a named page. + /// Whether a descendant contains the named page. ContainsPage, - /// Specifies store state for a named page. + /// Whether a descendant contains a store page for the named page. ContainsStorePage, - /// Specifies showing state for a named page. + /// Whether the named page is currently showing. IsPageShowing } #endregion #region Enum DockingPropogateIntState /// -/// Specifies a docking propogate for integer state. +/// Integer query broadcast through the docking element hierarchy. /// public enum DockingPropogateIntState { - /// Specifies control ordering for dockspace controls. + /// Control ordering value used by dockspace controls. DockspaceOrder } #endregion #region Enum DockingPropogatePageState /// -/// Specifies a docking propogate for page references. +/// Page lookup request broadcast through the docking element hierarchy. /// public enum DockingPropogatePageState { - /// Specifies a page referenced is required for the named page. + /// Locate the page instance for the given unique name. PageForUniqueName } #endregion #region Enum DockingPropogatePageList /// -/// Specifies a docking propogate for page list. +/// Page list filter applied when collecting pages from the hierarchy. /// public enum DockingPropogatePageList { - /// Specifies a list of all pages be created. + /// Collect every page. All, - /// Specifies a list of all docked pages be created. + /// Collect docked pages only. Docked, - /// Specifies a list of all auto hidden pages be created. + /// Collect auto-hidden pages only. AutoHidden, - /// Specifies a list of all floating pages be created. + /// Collect floating pages only. Floating, - /// Specifies a list of all filler pages be created. + /// Collect filler pages only. Filler } #endregion #region Enum DockingPropogateCellList /// -/// Specifies a docking propogate for cell list. +/// Workspace cell filter applied when collecting cells from the hierarchy. /// public enum DockingPropogateCellList { - /// Specifies a list of all cells be created. + /// Collect every workspace cell. All, - /// Specifies a list of all docked cells be created. + /// Collect docked workspace cells only. Docked, - /// Specifies a list of all floating cells be created. + /// Collect floating workspace cells only. Floating, - /// Specifies a list of all workspace cells be created. + /// Collect standalone workspace cells only. Workspace } -#endregion \ No newline at end of file +#endregion diff --git a/Source/Krypton Components/Krypton.Docking/General/DockingHelper.cs b/Source/Krypton Components/Krypton.Docking/General/DockingHelper.cs index cf55fc3d5d..c7ba841446 100644 --- a/Source/Krypton Components/Krypton.Docking/General/DockingHelper.cs +++ b/Source/Krypton Components/Krypton.Docking/General/DockingHelper.cs @@ -13,17 +13,17 @@ namespace Krypton.Docking; /// -/// Set of common helper routines for Docking functionality +/// Shared conversion and layout helpers for mapping docking edges to WinForms types and measuring client area. /// public static class DockingHelper { #region Public /// - /// Convert from DockEdge to DockStyle enumeration value. + /// Maps a docking edge to the corresponding WinForms dock style, optionally mirroring to the opposite edge. /// /// DockEdge value to convert. - /// Should the separator be docked against the opposite edge. - /// DockStyle value. + /// When true, returns the dock style for the opposite edge. + /// DockStyle aligned with the requested edge. public static DockStyle DockStyleFromDockEdge(DockingEdge edge, bool opposite) { switch (edge) @@ -45,10 +45,10 @@ public static DockStyle DockStyleFromDockEdge(DockingEdge edge, bool opposite) } /// - /// Convert the DockEdge to Orientation enumeration value. + /// Returns vertical orientation for left and right edges and horizontal orientation for top and bottom edges. /// /// DockEdge value to convert. - /// Orientation value. + /// Orientation aligned with the edge. public static Orientation OrientationFromDockEdge(DockingEdge edge) => edge switch { DockingEdge.Left or DockingEdge.Right => Orientation.Vertical, @@ -56,10 +56,10 @@ public static DockStyle DockStyleFromDockEdge(DockingEdge edge, bool opposite) }; /// - /// Find the inner space that occupied by the edge docking controls. + /// Returns the client rectangle remaining after subtracting space taken by visible edge-docked child controls. /// /// Reference to control. - /// Rectangle in control coordinates. + /// Inner client area in control coordinates. public static Rectangle InnerRectangle(Control c) { // Start with entire client area diff --git a/Source/Krypton Components/Krypton.Docking/General/DockingMultiUpdate.cs b/Source/Krypton Components/Krypton.Docking/General/DockingMultiUpdate.cs index 71ed04dc68..4bd817c34c 100644 --- a/Source/Krypton Components/Krypton.Docking/General/DockingMultiUpdate.cs +++ b/Source/Krypton Components/Krypton.Docking/General/DockingMultiUpdate.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Helper class used inside a 'using' statement to notify start and end of a multi-part update. +/// RAII scope that signals StartUpdate and EndUpdate to the docking hierarchy for batched layout changes. /// public class DockingMultiUpdate : IDisposable { @@ -23,9 +23,10 @@ public class DockingMultiUpdate : IDisposable #region Identity /// - /// Initialize a new instance of the DockingMultiUpdate class. + /// Begins a multi-part update by propagating StartUpdate from the given root element. /// /// Reference to root element of docking hierarchy. + /// is null. public DockingMultiUpdate(IDockingElement dockingElement) { @@ -35,7 +36,7 @@ public DockingMultiUpdate(IDockingElement dockingElement) } /// - /// Release managed and unmanaged resources. + /// Ends the multi-part update by propagating EndUpdate from the root element. /// public void Dispose() { diff --git a/Source/Krypton Components/Krypton.Docking/Krypton.Docking 2022.csproj b/Source/Krypton Components/Krypton.Docking/Krypton.Docking 2022.csproj index a36217bb52..8f4d1dc872 100644 --- a/Source/Krypton Components/Krypton.Docking/Krypton.Docking 2022.csproj +++ b/Source/Krypton Components/Krypton.Docking/Krypton.Docking 2022.csproj @@ -87,6 +87,9 @@ GenericImageResources.Designer.cs + + + true diff --git a/Source/Krypton Components/Krypton.Docking/Palette/DockingManagerStrings.cs b/Source/Krypton Components/Krypton.Docking/Palette/DockingManagerStrings.cs index 4f5029679d..615b58b8a2 100644 --- a/Source/Krypton Components/Krypton.Docking/Palette/DockingManagerStrings.cs +++ b/Source/Krypton Components/Krypton.Docking/Palette/DockingManagerStrings.cs @@ -13,7 +13,7 @@ namespace Krypton.Docking; /// -/// Storage for docking manager strings. +/// Localizable tooltip and context-menu labels used by KryptonDockingManager. /// public class DockingManagerStrings : Storage { @@ -43,14 +43,14 @@ public class DockingManagerStrings : Storage #region Events /// - /// Occurs whenever a property has changed value. + /// Raised after a string value changes. /// public event PropertyChangedEventHandler? PropertyChanged; #endregion #region Identity /// - /// Initialize a new instance of the DockingManagerStrings class. + /// Initializes all labels to built-in English defaults. /// /// Reference to owning docking manager. public DockingManagerStrings(KryptonDockingManager docking) @@ -69,7 +69,7 @@ public DockingManagerStrings(KryptonDockingManager docking) #region IsDefault /// - /// Gets a value indicating if all values are default. + /// True when every label still matches the built-in default values. /// [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] @@ -85,7 +85,7 @@ public DockingManagerStrings(KryptonDockingManager docking) #region TextAutoHide /// - /// Gets and sets the text to use for the auto hide button tooltip. + /// Tooltip for the auto hide button. /// [Category("Visuals")] [Description("Text to use for the auto hide button tooltip.")] @@ -107,14 +107,14 @@ public string TextAutoHide } /// - /// Resets the TextAutoHide property to its default value. + /// Restores the auto hide tooltip to the built-in default. /// public void ResetTextAutoHide() => TextAutoHide = DEFAULT_TEXT_AUTO_HIDE; #endregion #region TextClose /// - /// Gets and sets the text to use for the close button tooltip. + /// Tooltip for the close button. /// [Category("Visuals")] [Description("Text to use for the close button tooltip.")] @@ -136,14 +136,14 @@ public string TextClose } /// - /// Resets the TextClose property to its default value. + /// Restores the close tooltip to the built-in default. /// public void ResetTextClose() => TextClose = DEFAULT_TEXT_CLOSE; #endregion #region TextCloseAllButThis /// - /// Gets and sets the text to use for the 'close all but this' button tooltip. + /// Tooltip for the close-all-but-this button. /// [Category("Visuals")] [Description("Text to use for the 'close all but this' button tooltip.")] @@ -165,14 +165,14 @@ public string TextCloseAllButThis } /// - /// Resets the TextCloseAllButThis property to its default value. + /// Restores the close-all-but-this tooltip to the built-in default. /// public void ResetTextCloseAllButThis() => TextCloseAllButThis = DEFAULT_TEXT_CLOSE_ALL_BUT_THIS; #endregion #region TextDock /// - /// Gets and sets the text to use for the dock menu item. + /// Label for the dock context-menu item. /// [Category("Visuals")] [Description("Text to use for the dock menu item.")] @@ -194,14 +194,14 @@ public string TextDock } /// - /// Resets the TextDock property to its default value. + /// Restores the dock menu label to the built-in default. /// public void ResetTextDock() => TextDock = DEFAULT_TEXT_DOCK; #endregion #region TextFloat /// - /// Gets and sets the text to use for the float menu item. + /// Label for the float context-menu item. /// [Category("Visuals")] [Description("Text to use for the float menu item.")] @@ -223,14 +223,14 @@ public string TextFloat } /// - /// Resets the TextFloat property to its default value. + /// Restores the float menu label to the built-in default. /// public void ResetTextFloat() => TextFloat = DEFAULT_TEXT_DOCK; #endregion #region TextHide /// - /// Gets and sets the text to use for the hide menu item. + /// Label for the hide context-menu item. /// [Category("Visuals")] [Description("Text to use for the hide menu item.")] @@ -252,7 +252,7 @@ public string TextHide } /// - /// Resets the TextHide property to its default value. + /// Restores the hide menu label to the built-in default. /// public void ResetTextHide() => TextHide = DEFAULT_TEXT_DOCK; @@ -260,7 +260,7 @@ public string TextHide #region TextTabbedDocument /// - /// Gets and sets the text to use for the tabbed document menu item. + /// Label for the tabbed document context-menu item. /// [Category("Visuals")] [Description("Text to use for the tabbed document menu item.")] @@ -282,7 +282,7 @@ public string TextTabbedDocument } /// - /// Resets the TextTabbedDocument property to its default value. + /// Restores the tabbed document menu label to the built-in default. /// public void ResetTextTabbedDocument() => TextTabbedDocument = DEFAULT_TEXT_TABBED_DOCUMENT; @@ -290,7 +290,7 @@ public string TextTabbedDocument #region TextWindowLocation /// - /// Gets and sets the text to use for the drop-down button tooltip. + /// Tooltip for the window-position drop-down button. /// [Category("Visuals")] [Description("Text to use for the drop-down button tooltip.")] @@ -312,7 +312,7 @@ public string TextWindowLocation } /// - /// Resets the TextWindowLocation property to its default value. + /// Restores the window-position tooltip to the built-in default. /// public void ResetTextWindowLocation() => TextWindowLocation = DEFAULT_TEXT_WINDOW_LOCATION; #endregion